我是PHP和Ajax的新手,所以请耐心等待。我四处搜索,找到了一些答案,但仍然遇到了问题。我有一个复选框输入值数组。如果用户选中一个项目,它就会被添加到我的数组列表中。例如:
listOfPrograms = [chrome, firefox, sqlworkbench]
我想把这个数组列表发送到服务器上的PHP脚本中。我当前的Ajax脚本如下:
function ajaxPostToPhp(listOfPorgrams)
{
$.ajax
({
url: 'script.php',
type: 'post',
data: ("listOfPrograms" : listOfPrograms), // I believe this is where my issues lies as I do not know exactly that this is doing. I have read the PHP documentation. I tried converting to JSON and kept getting a 500 error.
success: function(data)
{
console.log(data);
}
});
}
我的PHP脚本如下:
$myArray = $_Request['listOfPrograms'];
echo $myArray;
这只返回数组中的1个项。我尝试设置myArray=[],但得到了一个未定义的索引。
谢谢你的帮助!很抱歉问了这么一个愚蠢的问题。
您需要修复一些问题:
1-Javascript数组:
var listOfPrograms = ['chrome', 'firefox', 'sqlworkbench'];
2-Ajax数据:
function ajaxPostToPhp(listOfPrograms)
{
myListData = {};
myListData['Programs'] = listOfPrograms;
$.ajax({
url: 'script.php',
type: 'post',
data: myListData,
success: function(data)
{
console.log(data);
}
});
}
3-Php代码:
$myArray = $_POST['Programs'];
var_dump($myArray);
将array
作为post
参数传递,但它们只能是strings
。您应该首先将数组转换为JSON
字符串。一个简单的功能是JSON.stringify()
var listOfPrograms = ["chrome", "firefox", "sqlworkbench"]
// I guess you need strings here
function ajaxPostToPhp(listOfPorgrams) {
$.ajax ({
url: 'script.php',
type: 'post',
// Convert listOfPrograms to a string first
data: ("listOfPrograms" : JSON.stringify(listOfPrograms)),
success: function(data) {
console.log(data);
}
});
}
jquery会为您将ajax post data
中的数组值转换为数组。问题是,在php
中,不能只回显一个数组。正如一位评论者所说,您的php文件需要看起来像
$myArray = $_Request['listOfPrograms'];
echo json_encode($myArray);
您还应该考虑使用$_POST
而不是$_REQUEST