我是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 = [],但我得到一个未定义的索引。
感谢您的帮助!对不起这样的菜鸟问题。
答案 0 :(得分:1)
你需要解决一些问题:
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);
答案 1 :(得分:0)
您正在传递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);
}
});
}
答案 2 :(得分:0)
jquery会将ajax post data
中的数组值转换为数组。问题是在php
中你不能只回显一个数组。作为评论者说,你的php文件需要看起来像
$myArray = $_Request['listOfPrograms'];
echo json_encode($myArray);
您还应考虑使用$_POST
而不是$_REQUEST