Ajax post返回具有多个值的对象的多个数组

时间:2018-01-13 17:24:53

标签: javascript php jquery ajax

所以我有一个从数据库(ajax.php)获取消息的php文件和一个向该ajax.php文件(main.js)发出ajax请求的javascript文件。

我想要的是:当php多次响应时,js文件会为每一个创建一个表行。

main.js:

function doAjax(variable) {
    $.ajax({
        type: "POST",
        url: "ajax.php"
        data: { content: variable },
        dataType: 'JSON',            
        success: function (response) {
            response.forEach(function(data) {
              $(".messages-table").append("<tr><th>"+from+"</th><th>"+text+"</th><th>"+date+"</th><th>"+num+"</th></tr>")
            })
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.log(textStatus, errorThrown);
        }
    });
}

ajax.php:

<?php

...

foreach ($messages as $message) {
    $from = $message['contact_value'];
    $text = $message['message'];
    $date = $message['date'];
    $num = $user['phone_number'];
    echo json_encode(array("from"=>"$from", "text"=>"$text", "date"=>"$date", "num"=>"$num"));
?>

但是当我这样做时,我在开发者控制台中收到了这个错误:

parsererror SyntaxError: Unexpected token < in JSON at position 0
    at parse (<anonymous>)
    at Qb (jquery.min.js:4)
    at A (jquery.min.js:4)
    at XMLHttpRequest.<anonymous> (jquery.min.js:4)

干杯

1 个答案:

答案 0 :(得分:-1)

你的ajax.php应该是这样的

<?php


  foreach ($messages as $message) {
    $from = $message['contact_value'];
    $text = $message['message'];
    $date = $message['date'];
    $num = $user['phone_number'];
    echo json_encode(array("from"=>$from, "text"=>$text,"date"=>$date,"num"=>$num));
?>

如果你真的想要引号,那么请使用''(单引号)。

和javascript文件。

 success: function (response) {
  var success = $.parseJSON(response);
  $(".messages-table").append("<tr><th>"+success.from+"</th><th>"+success.text+"</th><th>"+success.date+"</th><th>"+success.num+"</th></tr>");
}

我认为如果每次都调用doAjax函数,则不需要使用forech循环。

相关问题