簡體   English   中英

Ajax數組僅返回1值?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM