[英]Ajax array only returns 1 value?
我是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;
這僅返回數組中的一項。 我嘗試設置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-郵遞區號:
$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發布data
中的數組值轉換為數組。 問題是在php
您不能僅回顯數組。 如評論者所述,您的php文件需要看起來像
$myArray = $_Request['listOfPrograms'];
echo json_encode($myArray);
您也應該考慮在$_REQUEST
使用$_POST
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.