Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在表中显示AJAX响应_Php_Jquery_Json_Ajax_Codeigniter - Fatal编程技术网

Php 在表中显示AJAX响应

Php 在表中显示AJAX响应,php,jquery,json,ajax,codeigniter,Php,Jquery,Json,Ajax,Codeigniter,我正在尝试根据日期范围显示记录 脚本 $(function() { $(document).on("click", "#btnSubmit", function(e) { e.preventDefault(); var info = $("#search").serialize(); alert(info); $.ajax({ type: 'POST', url: 'url', data: info, succ

我正在尝试根据日期范围显示记录

脚本

$(function() {
  $(document).on("click", "#btnSubmit", function(e) {
    e.preventDefault();
    var info = $("#search").serialize();
    alert(info);

    $.ajax({
      type: 'POST',
      url: 'url',
      data: info,
      success: function(response) {
        alert(response);
        var obj = $.parseJSON(response);
        var trHTML = '';

        $.each(response, function(i, o) {
          trHTML += '<tr><td>' + o.patient_name +
            '</td><td>' + o.patient_address +
            '</td></tr>';
        });

        $('#records_table').append(trHTML);
      }
    });

    e.preventDefault();
  });
});
型号

function search($date1,$date2){
    $this->db->trans_start();
    $query = $this->db->query("SELECT * FROM `referral_confirmation_details` WHERE `created_on` >= '".$date1."' AND `created_on` <= '".$date2."'");
    $this->db->trans_complete();
    if($query->num_rows()>=1)
        return $query->result();
    }

我得到了错误如“位置0处JSON中的意外令牌A”。

您使用的不是JSON对象,而是响应JSON字符串。 试一试

$。每个(对象、函数(i、o){
trHTML+=''+o.patient\U姓名+
''+o.患者地址+
'';
});

我认为json结尾缺少
]

[{"ID":"1","patient_name":"xyz","patient_email":"xyz@gmail.com","gender":"Male","
age":"23","address":"xyz","city":"bangalore","password":"fzf1"}]
$。每个(响应、函数(i、o){
trHTML+=''+o.patient\U姓名+
''+o.患者地址+
'';
});
在每个循环中传递响应变量,您应该添加obj,否则您应该首先使用parse并在循环中传递。这样您就可以解决这个问题。
而在json响应中,]丢失。

您需要将字符串转换为对象。试试下面

$.ajax({

    type: 'POST',
    url: 'url',
    data: info,
    dataType: 'json',
    success: function(response){

        var obj = $.parseJSON(response);   

        var trHTML = '';
        $.each(obj, function (i, o){
        trHTML += '<tr><td>' + o.patient_name +
                 '</td><td>' + o.patient_address +
              '</td></tr>';
$.ajax({
键入:“POST”,
url:'url',
数据:信息,
数据类型:“json”,
成功:功能(响应){
var obj=$.parseJSON(响应);
var trHTML='';
$。每个(对象、功能(i、o){
trHTML+=''+o.patient\U姓名+
''+o.患者地址+
'';

});

内部有两个错误:

请换

$.each(response, function(i, o) {
  trHTML += '<tr><td>' + o.patient_name +
    '</td><td>' + o.patient_address +
    '</td></tr>';
});
$。每个(响应、函数(i、o){
trHTML+=''+o.patient\U姓名+
''+o.患者地址+
'';
});

$(obj).每个(函数(i){
trHTML+=''+这个病人的名字+
''+这个病人的地址+
'';
});

您想迭代解析的JSON对象而不是HTTP响应,对吗?为了进一步阅读,请查看jQuery的
$()文档。每个

谢谢大家,我终于得到了结果。我已经更新了正确的脚本,以便对面临相同问题的人有所帮助

   $(document).on("click", "#btnSubmit", function(e) {
   e.preventDefault();

    var info = $("#search").serialize();
     $.ajax({

type: 'POST',
url: 'url',
data: info,
dataType: 'json',
success: function(response){

    var trHTML = '';
    $.each(response, function (i, o){
   trHTML += '<tr><td>' + o.patient_name +
         '</td><td>' + o.patient_address +
      '</td></tr>';
          });
  $('#records_table').append(trHTML);
      }
    });
    e.preventDefault();
  });
$(文档)。在(“单击”上,“提交”,函数(e){
e、 预防默认值();
var info=$(“#搜索”).serialize();
$.ajax({
键入:“POST”,
url:'url',
数据:信息,
数据类型:“json”,
成功:功能(响应){
var trHTML='';
$。每个(响应、功能(i、o){
trHTML+=''+o.patient\U姓名+
''+o.患者地址+
'';
});
$(“#记录_表”).append(trHTML);
}
});
e、 预防默认值();
});

我不使用jQuery,但可能会将
$.each(响应,
更改为
$.each(obj,函数(..
是准确的回答,还是你只是没有复制上一个
]
?@Norsk-你更改了问题中的回答。这是因为你知道它错了还是因为你猜测它错了?@MagnusEriksson我意识到我的错误并尝试取消/删除我的编辑,但我不确定这是否正确possible@Norsk不担心,我把它改了回去。让我们保持原样,直到OP对任何问题/评论做出响应。要正确调试您的东西,您不应该使用
alert();
,而应该使用
console.log()
。因此,您可以在浏览器控制台内正确查看您的输出。当我替换响应时,我收到的错误消息为未捕获类型错误:无法使用“in”运算符在数组中搜索“length”。我已更新了答案。如果这没有帮助,请友好地在jsbin、JSFIDLE等上上载您的代码版本。因此e代码分析将被简化。非常感谢您的支持..我终于得到了$的输出。每个(响应,函数(i,o){@user5370838所以,您是否愿意向我们展示您的解决方案,并将正确的答案标记为它是什么?在循环时它应该是一个响应
[{"ID":"1","patient_name":"xyz","patient_email":"xyz@gmail.com","gender":"Male","
age":"23","address":"xyz","city":"bangalore","password":"fzf1"}]
$.each(response, function (i, o){
   trHTML += '<tr><td>' + o.patient_name +
             '</td><td>' + o.patient_address +
          '</td></tr>';
 });
$.ajax({

    type: 'POST',
    url: 'url',
    data: info,
    dataType: 'json',
    success: function(response){

        var obj = $.parseJSON(response);   

        var trHTML = '';
        $.each(obj, function (i, o){
        trHTML += '<tr><td>' + o.patient_name +
                 '</td><td>' + o.patient_address +
              '</td></tr>';
$.each(response, function(i, o) {
  trHTML += '<tr><td>' + o.patient_name +
    '</td><td>' + o.patient_address +
    '</td></tr>';
});
$(obj).each(function(i) {
  trHTML += '<tr><td>' + this.patient_name +
    '</td><td>' + this.patient_address +
    '</td></tr>';
});
   $(document).on("click", "#btnSubmit", function(e) {
   e.preventDefault();

    var info = $("#search").serialize();
     $.ajax({

type: 'POST',
url: 'url',
data: info,
dataType: 'json',
success: function(response){

    var trHTML = '';
    $.each(response, function (i, o){
   trHTML += '<tr><td>' + o.patient_name +
         '</td><td>' + o.patient_address +
      '</td></tr>';
          });
  $('#records_table').append(trHTML);
      }
    });
    e.preventDefault();
  });