jquery 中的初始 .ajax 调用:
$.ajax({
type: 'post',
url: 'items_data.php',
data: "id="+id,
dataType: 'json',
success: function(data){
if(data){
make_item_rows(data);
}else{
alert("oops nothing happened :(");
}
}
});
将一个简单的字符串发送到一个 php 文件,如下所示:
header('Content-type: application/json');
require_once('db.php');
if( isset($_POST['id'])){
$id = $_POST['id'];
}else{
echo "Danger Will Robinson Danger!";
}
$items_data = $pdo_db->query ("SELECT blah blah blah with $id...");
$result_array = $items_data->fetchAll();
echo json_encode($result_array);
我很好地捕获了 $result_array 并将其传递给另一个函数。我仔细检查了确实返回了正确的值,因为我可以将结果回显到我的页面,它显示如下内容:
[{"item_id":"230","0":"230","other_id":"700"},{"item_id":"231","0":"231","other_id":"701"},{"item_id":"232","0":"232","other_id":"702"}]
我无法弄清楚如何遍历结果,以便可以将值注入 HTML 中的表中。这是我的功能:
function make_item_rows(result_array){
var string_buffer = "";
$.each(jQuery.parseJSON(result_array), function(index, value){
string_buffer += value.item_id; //adding many more eventually
$(string_buffer).appendTo('#items_container');
string_buffer = ""; //reset buffer after writing
});
}
我还尝试在 $.each 函数中发出警报,以确保它触发了 3 次,确实如此。但是,我的代码中没有数据。也尝试了其他一些方法,但没有运气。
更新:我更改了我的代码以包含 parseJSON,没有骰子。在我的 jquery 文件中出现意外的令牌错误(当它尝试使用本机 json 解析器时)。尝试添加 json 标头无济于事,同样的错误。jQuery 版本 1.9.1。现在的代码应该反映在上面。