我有一个返回2行的查询。这是我的PHP代码:
$arr = array();
$stmt = $dbh_conn->prepare("SELECT id,name FROM mytable WHERE id <= 2");
$stmt->execute();
$result = $stmt->fetchAll();
/*Array
(
[0] => Array
(
[id] => 1
[name] => pear
)
[1] => Array
(
[id] => 2
[name] => watermelon
)
) */
$arr["output"] = $result;
header('Content-Type: application/json');
echo json_encode($arr);
exit();
这是我的JS代码:
success: function(arr) {
$(".myclass").html(arr.output.0.name);
}
它抛出了这个:
参数列表之后的Uncaught SyntaxError:missing)
当我删除.0.name
时,会抛出此内容:
未捕获的TypeError:无法在'Node'上执行'appendChild':参数1不是'Node'类型。
无论如何,当选择多行时,如何显示ajax请求的结果?
我想要制作的是一个结果的HTML表格,如下所示:
<tr>
<td>1</td>
<td>pear</td>
</tr>
<tr>
<td>2</td>
<td>watermelon</td>
</tr>
然后将其推入$('.myclass')
元素。
答案 0 :(得分:0)
使用JSON.parse
将字符串(data
)解析回数组。
success: function(data) {
var arr = JSON.parse(data);
$(".myclass").text(arr.output[0].name);
}
并使用数组的下标。如果您要设置评论中提及的.myclass
文字,请使用.text
代替.html
。
答案 1 :(得分:0)
如果您的数据以json的形式返回,则需要访问对象数组,更改
$(".myclass").html(arr.output.0.name);
到
$(".myclass").text(arr.output[0].name);