簡體   English   中英

如何使用AJAX將Javascript數組傳遞給PHP文件?

[英]How to pass Javascript array to PHP file using AJAX?

我必須在AJAX調用時將Javary arry傳遞給PHP文件。

以下是我的js數組:

var myArray = new Array("Saab","Volvo","BMW");

此JS代碼必須使用AJAX請求將JS數組傳遞給PHP文件,並顯示數組的數量。

function ProcessAJAXRequest()
{
    $.ajax
    ({
        type: "POST",
        url: "myphpfile.php",
        data: {"id" : 1, "myJSArray" : myArray},
        success: function (data) 
        {
            alert(data);
        }
    });
}

此myphpfile.php文件必須返回數組的計數

<?php 
    $myPHPArray = $_POST["myJSArray"];
    echo count($myPHPArray);
 ?>

PHP文件中有錯誤。 我正在得到未定義的索引:myPHPArray。 如何實現我所需的功能?

使用JSON.stringify將值轉換為JSON並將其發送到服務器。

data: JSON.stringify({"id" : 1, "myJSArray" : myArray})

通過JSON.stringify以JSON格式轉換js數組

function ProcessAJAXRequest()
{
    $.ajax
    ({
        type: "POST",
        url: "myphpfile.php",
        data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)},
        success: function (data) 
        {
            alert(data);
        }
    });
}

並且在PHP使用json_decode函數獲取數組中的值

json_decode($_POST["myJSArray"]);

您可以使用JSON.stringify(array)在JavaScript中對數組進行編碼,然后使用

$array=json_decode($_POST['jsondata']);

在您的PHP腳本中檢索它。請檢查此鏈接

傳遞Javascript數組-> PHP

在我看來,您的數組在函數作用域中不可用:

function ProcessAJAXRequest(){
   var myArray = new Array("Saab","Volvo","BMW"); // this has to be in fn scope
   $.ajax({
      type: "POST",
      url: "myphpfile.php",
      data: {"id" : 1, "myJSArray" : JSON.stringify(myArray)},  // do the stringify before posting
      success: function (data){
         alert(data);
      }
   });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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