如何在JS中使用ajax请求的结果?

时间:2017-01-19 21:02:49

标签: javascript php jquery ajax

我有一个返回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')元素。

2 个答案:

答案 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);