【问题标题】:How to create a two-dimensional array in PHP and iterate through it with Javascript如何在 PHP 中创建一个二维数组并用 Javascript 遍历它
【发布时间】:2013-08-26 21:36:14
【问题描述】:

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

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

我得到了 nr 1 + nr 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's 下?

为了提供一些上下文 - 并假设数组没问题,我们然后在“下一步”将它发送回 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 循环迭代/访问每个值 - 但又一次,我怎么不完全确定?

【问题讨论】:

标签: php javascript jquery ajax arrays


【解决方案1】:

我会建议使用 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】:

    我认为您在成功函数中访问数据错误,数据以数组形式返回。这是一个例子:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 1970-01-01
      • 2014-05-05
      • 2015-01-13
      • 2017-08-13
      • 2011-04-11
      • 2011-07-18
      • 1970-01-01
      相关资源
      最近更新 更多