我是PHP和AJAX的新手。欢迎任何建议。 我的最终目标是在按钮单击时将MySQL数组存储在MySQL数据库中,但首先我测试是否可以将JS数组发送到PHP脚本。我需要帮助找出如何显示使用AJAX发送的数组。
我的HTML在submit-array.html
<button onclick="submit()">Submit Array</button>
<p id="demo"></p>
我的JS在submit-array.html
function submit() {
var nameString = JSON.stringify(nameArray);
$.ajax({
url: "submit.php",
type: 'post',
data: nameString,
success: function() {
document.getElementById("demo").innerHTML = "Submitted Successfully";
},
error: function () {
document.getElementById("demo").innerHTML = "Error";
}
}); // end ajax call
}
submit.php
if(isset($_POST['nameString'])) {
$nameArray = json_decode($_POST[nameString]);
echo $nameArray;
}
else {
echo "nameString not received";
}
当我运行我的代码并点击提交按钮时,我在HTML页面上看到“成功提交”,并在php页面上看到“未收到nameString”。
为什么在将nameString发送给PHP之后$ nameArray没有显示?
答案 0 :(得分:0)
你没有给你的data
一个名字,因此PHP没有任何内容可以放入$_POST
。
你应该:
data: {nameString: JSON.stringify(nameArray)}
^^^^^^^^^^--- $_POST key
^^^^etc... $_POST value
答案 1 :(得分:0)
使用谷歌浏览器Deleoper工具(Ctrl-Shift-I)网络标签或类似选项与 firefox in firefox 。 在上面提到的工具中,您可以看到每个服务器并对应响应。检查它们,你会找到你的AJAX数据。