我做了一个需要返回的Ajax调用(成功后:...)一个表示SQL查询的多维数组:
$.ajax({ url: 'http://localhost/Project/ajaxmethod.php',
data: {action: this.title},
type: 'post',
success: function(data) {
//I need to use the data array here.
});
以下是调用的方法:
<?php
$bdd = new PDO('mysql:host=localhost;dbname=DATABASE;charset=utf8', 'root', '');
$req = $bdd->query("SELECT column1, column2, column3 FROM TABLE ");
$data = ... //Here I need to transform the previous request into a multidimensional array.
//For exemple data[3][2] will contain the value within the third row of the second column
echo $data; //returning the array
}
由于
答案 0 :(得分:4)
<强>问题强>
您正在尝试返回am数组。但是,由于AJAX调用适用于HTTP协议,因此通常只能传输文本。所以你的ajaxmethod.php将打印数组和渲染页面,即文本将在显示时返回,而不是数组。
<强>解决方案强>
使用json_encode()(PHP)将数组转换为JSON对象并返回。然后使用JSON.parse()(JavaScript)在进行ajax调用的页面上对其进行解码。这将给出一个数组。
<强>代码强>
$.ajax({ url: 'http://localhost/Project/ajaxmethod.php',
data: {action: this.title},
type: 'post',
success: function(data) {
//I need to use the data array here.
var array = JSON.parse(data); //This is the array you want
});
...
<?php
$bdd = new PDO('mysql:host=localhost;dbname=DATABASE;charset=utf8', 'root', '');
$req = $bdd->query("SELECT column1, column2, column3 FROM TABLE ");
$data = ... //Here I need to transform the previous request into a multidimensional array.
//For exemple data[3][2] will contain the value within the third row of the second column
echo json_encode($data) //returning the array
}
答案 1 :(得分:3)
你不能只回显一个数组(你不能,它不是一个简单的数组)。
幸运的是,有一种叫做JSON的东西。在PHP中,您可以将所需的所有信息(在本例中为数据库中的行)存储在一个大型数组中,然后执行echo json_encode($array);
。
在Javascript方面,您将$.ajax
更改为$.getJSON
,以便jQuery也了解我们正在谈论JSON,等等,您有一个很好的PHP数组javascript版本。
// I am not familiar with PDO, but something along these lines:
$allData = $req->fetchAll();
echo json_encode($allData); // Now you output a JSON version of the array
然后是javascript
$.getJSON(
'http://localhost/Project/ajaxmethod.php',
{action: this.title},
function(response) {
// And in 'response' you now have a ready to use JS object)
console.log(response);
});
*如果您愿意,也可以使用$.ajax()
,只需添加dataType: 'json