[英]How to create a two-dimensional array in PHP and iterate through it with Javascript
我目前正在尝试执行以下操作:
我得到了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
下吗?
为了提供一些背景信息-并假设数组很好,然后我们在“下一步”中将其发送回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循环来迭代/访问每个值-但是,再次,我不确定如何?
我建议使用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中轻松使用它。
我认为您在成功函数中访问数据错误,数据作为数组返回。 这是一个例子:
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
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.