duanlou7910 2015-06-23 23:03
浏览 159

如何使用AJAX从PHP传递数组

I'm having some issues displaying an array which I created in a PHP file. The response data in question is data["vessel"] I have some 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.
Returned json: " + data["json"]);
              },
              error: function (request) {
                console.log(request.responseText);
            }
            });
    });

The 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);
 }

when I display data["json"] in console, I get Returned json: {"vessel":{"1":"Thriller","2":"Jammin","3":"Thunderstruck","4":"Wildthing","6":"Joyride"}

Which is awesome, but I don't know how to do that using the data["vessel"] Any help would be greatly appreciated.

  • 写回答

1条回答 默认 最新

  • dongnuochen9449 2015-06-23 23:09
    关注

    I solved my own riddle. Because data["vessel"] is an array, I had to loop through it. Doing so like this worked:

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

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么