代码之家  ›  专栏  ›  技术社区  ›  user1231561

如何在PHP中创建二维数组并使用Javascript进行迭代

  •  0
  • user1231561  · 技术社区  · 13 年前

    我目前正在尝试执行以下操作:

    1. 从我的image.js代码中请求一个PHP文件
    2. 在请求调用中,从我的mysql数据库中查询出数据并保存 它在PHP数组中
    3. 将数组作为JSON对象返回到image.js。

    我得到了1号和3号的掩护——我正在挣扎的是 如何将我的数据库属性正确保存到PHP数组中,然后迭代json回调中的每个记录 .

    数据库属性示例:

    player_id (unique key) || player_name || player_country || player_image || player_league ||
    

    问题/挑战1: 保存数组(这是我不确定的)

    while ($row = mysql_fetch_assoc($res))
    {
        $myCallbackArray[] = array($row['player_id'], $row['player_name'], $row['player_country'], $row['player_image']);
    }
    

    -以下数组,将只是一个“扁平数组”,没有维度,基于将所有相应的属性保存在单独的 player_id 是吗?

    为了给出一些上下文,假设数组很好,我们在“下一步”中将其发送回JS

    $callback = $myCallbackArray;
    echo json_encode(array('returned_val' => $callback));
    

    问题/挑战2 :访问JS中的数组值(这是我不确定的)

          //Save the data
        var url = "request.php"; //
    
          var request = $.ajax({
                 type: "POST",
                 url: url,
                 dataType: 'json',
                 data: { user_id: id},
    
                 success: function(data)
                 {
    
    //HERE WE HANDLE THE RETURNED ARRAY
    if(data.returned_val) {
    
                      for( var i = 0; i < data.returned_val.length; i++ ){
    //HERE I WOULD LIKE TO MAKE THE DIFFERENT ATTRIBUTES ACCESSABLE
                      } 
                 },
                 error:function() {
                    //FAILURE
                }   
    
    });
    return false;
    

    -因此,在这一部分中,我不确定如何实际处理PHP中的多维数组。我认为我们需要将其保存在一个Javascript数组中,然后我们可能可以通过foreach循环迭代/访问每个值——但再说一遍——我怎么不完全确定呢?

    2 回复  |  直到 13 年前
        1
  •  0
  •   Krasimir    13 年前

    我建议使用json_encode:

    $myCallbackArray []= (object) array(
        "player_id" => '...',
        "player_name" => '...',
        "player_country" => '...',
        "player_image" => '...',
        "player_league" => '...'
    );
    
    $json = json_encode($myCallbackArray);
    

    $json实际上如下所示:

    [{"player_id":"...","player_name":"...","player_country":"...","player_image":"...","player_league":"..."}]
    

    这是一个有效的JSON,您可以很容易地在javascript中使用它。

        2
  •  0
  •   Get Off My Lawn    13 年前

    我认为你在成功函数中访问数据是错误的,数据以数组的形式返回。以下是一个示例:

    var request = $.ajax({
        type: "POST",
        url: url,
        dataType: 'json',
        data: {user_id: id},
        success: function(data){
    
            var myval = data["returned_val"];
    
            alert(myval);
    
        },
        error:function() {
            //FAILURE
        }
    });