我有这个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;
}
}
我希望每次点击链接时都能向PHP脚本发送一个唯一ID的EID。
有任何帮助吗?我使用的是Jquery,但我对它不太熟悉。如果只有使用JS的选项,我会非常感激。
答案 0 :(得分:1)
确保您使用firebug或类似的东西查看此内容以查看返回的结果,在jquery done函数中,您可以为数组执行数据[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;
}
我相信你可以解决这个问题......展示一些努力......并且不要害怕问你是否仍然不理解..只要你尝试。
答案 1 :(得分:1)
你可以使用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攻击,代码注入等......如何做到这一点超出了这里讨论的内容,但要注意
答案 2 :(得分:0)
使用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
除非您想要了解有关跨域请求的所有信息,否则您必须确保不要尝试与加载页面的网站进行对话。