如何使用AJAX从PHP传递数组

时间:2015-06-23 23:03:30

标签: php jquery ajax json mysqli

我有一些问题显示我在PHP文件中创建的数组。相关回复数据为data["vessel"] 我有一些jQuery:

j$('select[name=vessel]').change(function(e) {
        var tour_ID = j$('select[name=tour]').val();
        var trip_Date = j$('input[name=trip_Date]').val();
        var data = {
              "action": "Count_Vessels",
              "trip_Date": trip_Date,
              "tour_ID":tour_ID
            };
            data = j$(this).serialize() + "&" + j$.param(data);
            j$.ajax({
              type: "POST",
              dataType: "json",
              url: "../include/booking_Modify.php", 
              data: data,
              success: function(data) {
                  //console.log("vessel stack: " + data["vessel"][0]);
                  var arr=JSON.parse(data["vessel"]);
                  console.log("vessel stack: " + arr[0]);
                  console.log("Form submitted successfully.\nReturned json: " + data["json"]);
              },
              error: function (request) {
                console.log(request.responseText);
            }
            });
    });

PHP:

function count_Vessels(mysqli $conn, $trip_Date, $tour_ID){
    $return = $_POST;
    $vessel_Stack = array(); 
    $vessel_Query = "SELECT * FROM Vessel";
    if(!$vessel_Results = $conn->query($vessel_Query)){
        die('There was an error running the query [' . $conn->error . ']');
    }
    while( $vessel_Row = $vessel_Results->fetch_assoc() ){
        $vessel_Stack[$vessel_Row['ve_ID']] = $vessel_Row['vessel_Name'];
    }

    $return['vessel'] = $vessel_Stack;
    $return["json"] = json_encode($return);
    echo json_encode($return);
 }

当我在控制台中显示数据[" json"]时,我得到Returned json: {"vessel":{"1":"Thriller","2":"Jammin","3":"Thunderstruck","4":"Wildthing","6":"Joyride"}

哪个很棒,但我不知道如何使用data["vessel"]如何帮助我们将非常感谢。

1 个答案:

答案 0 :(得分:0)

我解开了自己的谜语。因为data [“vessel”]是一个数组,所以我不得不遍历它。这样做是有效的:

j$.each(data["vessel"], function(key, val) {
    console.log('index ' + key + ' value ' + val);
});