我有这个JS函数,我正在寻找最简单的方法将变量发送到php并让php向我的JS返回数组。我有第二部分,我只需要帮助发送变量。这是我的函数:
function myEvent(){
//console.log(uploaded);
var length = uploaded.length;
var content = document.getElementById("Profile");
if(length == 0){
content.innerHTML = '<p style="text-align:center"><b> You uploaded no events. </b></p>';
}
else {
content.innerHTML = " ";
for(var i=0; i<length;i++){
var entry = document.createElement('li');
var EID = uploaded[i][0];
entry.innerHTML= '<a href="eventList2.html">'+uploaded[i][1]+'</a>';
content.appendChild(entry);
}
return false;
}
}
我希望每次单击链接时都能将EID发送给PHP脚本,这是一个唯一的ID。
有什么帮助吗?我正在使用Jquery,但我不太熟悉它。如果有一个单独使用 JS 的选项,我将不胜感激。
你可以使用 Ajax 来做到这一点。还有另一种非常简单的方法可以将数据发送到任何服务器(无论是否相同域)上的php脚本,同时使该php脚本与您的页面进行交互
首先创建一个脚本标记:
var tag = document.createElement('script');
该标记的 SRC 将是将接收变量的 PHP 脚本的 URL:
var myVar = 'foo';
tag.src = '/path/to/my/script.php?variable='+myVar;
将脚本标记添加到 DOM 以请求它
document.getElementsByTagName('head')[0].appendChild(tag);
在服务器端,PHP 脚本接收变量并执行它应该对它执行的任何操作,并且可以选择回显之后将在页面上运行的任何 JavaScript:
<?php
echo "alert('".$_GET['variable']."')";
差不多就是这样,警告,请注意,这只是一个简单的示例,要在生产站点上实现这样的东西,您需要确保这样做不会使您的站点受到XSS攻击,代码注入等... 如何做到这一点超出了这里讨论的范围,但请注意
确保使用 firebug 或类似的东西查看此内容以查看返回的结果,在 jquery done 函数中,您可以为数组执行 data[0] 等操作
.html
<!DOCTYPE html>
<html>
<head>
<title>JQuery Test</title>
<meta charset="utf-8">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="myjs.js"></script>
</head>
<body>
<button id="sendData">Send Data</button>
</body>
</html>
.JS
$(document).ready (function (){
$("#sendData").on ("click", function (){
jQuery.ajax ({
url: "index.php",
type: "POST",
data: {returnArray: 1}
}).fail (function (){
console.log ("failed");
}).done (function (data){
console.log (data);
});
});
});
.PHP
if (isSet ($_POST ['returnArray']))
{
$a = array ("a", "b", "c", "d");
header('Content-type: application/json');
echo json_encode ($a);
exit;
}
我相信你能弄清楚这一点...表现出一些努力..如果你仍然不明白,不要害怕问..只要你尝试。
使用 JavaScript 的XMLHttpRequest
向运行 PHP 的服务器发送消息。当 PHP 脚本响应时,XMLHttpRequest 对象会通知您,您将能够获取XMLHttpRequest.responseText
。
让 PHP 使用 JSON 响应是个好主意,它可以很容易地做到这一点。然后你可以用JavaScript的JSON.parse
函数解析responseText,然后使用它。
以下两篇文章将介绍如何使用标准对象。
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest
http://www.php.net/manual/en/function.json-encode.php
您只需要确保不要尝试与加载页面的网站不同的网站交谈,除非您想了解有关跨域请求的所有信息。