簡體   English   中英

將數組從JQuery傳遞給PHP

[英]pass an array from JQuery to PHP

我想將一個數組從Jquery傳遞給PHP。

我的jquery:

var jsonFormat = JSON.stringify(myArray);

$.post("myPHPFile.php", jsonFormat).done(function(data) {
    $('.foo').append(data);
});

我按預期在瀏覽器控制台中看到myArray

我的PHP:

<?php

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, DELETE, PUT, OPTIONS');
//echo json_decode(array('success' => 'yes'));


if ($_SERVER['REQUEST_METHOD']=="POST"){

    $jsonFormat = $_POST['jsonFormat']; 

    echo $jsonFormat;

}
?> 

在瀏覽器控制台中,我獲得狀態200 ok,但沒有響應。 我期待看到數組作為回應。

您已經向PHP傳遞了一個帶有JSON主體的請求,但您嘗試將其視為application/x-www-form-urlencoded數據,而不是application/json數據。

使用$.post("myPHPFile.php", { myData: myArray })$_POST['myData']代替。 jQuery會將數據編碼為application/x-www-form-urlencoded (它甚至會默認使用PHP的不尋常的命名約定)。

我會做類似的事情:

jQuery的

$.post("myPHPFile.php", myArray.serialize(), function(data) {
    $(".foo").append(data);
}, "json");

myArray.serialize()將您的數組轉換為一個字符串,該字符串將發布到您的PHP文件中,如下所示: var1=text&var2=text

PHP

<?php
    $var1 = $_POST['var1'];
    $var2 = $_POST['var2'];
    // repeat for each variable being posted.

    // your php code that does whatever it will do with the variables.

    // data to return to Jquery will be put back into an array like this:
    $return['var3'] = $var3;
    $return['var4'] = $var4;

    echo json_encode($return);
    unset($_POST);
?>

返回的數據是datatype = json,可以在Jquery代碼中訪問,如下所示: data.var3 data.var4

暫無
暫無

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

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