【问题标题】:Display rows from database in html table using jQuery, Ajax, json使用jQuery,Ajax,json在html表中显示数据库中的行
【发布时间】:2014-10-29 12:13:40
【问题描述】:

我需要一些有关以下代码的帮助。我正在尝试使用 ajax 查询我的数据库并在表中返回结果。代码正在执行,我没有收到任何错误 - 我只是没有得到响应。有任何想法吗?我感觉我的 jQuery 函数出了点问题。

感谢您提供的任何帮助。

我认为我的职能:

$("#test").click(function() {
    var form_data = {
        Opportunity_Id: $('#Opportunity_Id').val(),
        ajax: '1'
    };

    $.ajax({
        url: "<?php echo site_url('schedule/get_classes'); ?>",
        type: 'POST',
        data: form_data,
        cache: false,
        success: function(server_response) {
            var data = $.parseJSON(server_response);

            for(var i = 0; i < data.length; i++){
                week = data[i];
                $("table.table").append("<tr><td>" + week.Class_Number + "</td><td>" + week.Class_Date + "</td></tr>");
            };
        },
        error: function(thrownError) {
            alert(thrownError);
        }
    });

    return false;
})

我的控制器:

function get_classes() {
    $Opportunity_Id = $this->input->post('Opportunity_Id');
    $this->ion_auth_model->get_classes($Opportunity_Id);

    foreach ($classes as $class):
        $results[] = array(
                        "Class_Number" => $class->Class_Number,
                        "Class_Date" => $class->Class_Date,
                        "Start_Time" => $class->Start_Time,
                        "End_Time" => $class->End_Time
                    );
    endforeach;

    echo json_encode($results);
}

我的模特:

function get_classes($Opportunity_Id) {
    $this->db->select('*')->from('Classes')->where('Opportunity_Id', $Opportunity_Id);
    $q = $this->db->get();

    if($q->num_rows() > 0) {
        foreach($q->result() as $classes) {
            $data[] = $classes;
        }
        return $data;
    }
}

【问题讨论】:

  • 你的数据变量在 ajax 响应中的样子如何?
  • 尝试使用 firebug 或 chrome 调试器检查您收到的响应或收到的错误。
  • @RonakPatel 我不确定我是否理解。通过查看浏览器开发工具中的网络日志,我看到代码正在执行。在我看来,这些行没有填充到我的表中。
  • @Zeeshan 我在控制台中收到以下错误 - “Uncaught SyntaxError: Unexpected token
  • @user1337595 您在哪一行收到此语法错误?你为什么不在你的问题中提到它?

标签: php jquery ajax json codeigniter


【解决方案1】:

我认为这可能是您的问题,您正在从 get_classes($Opportunity_Id) 返回一个数组,但您在调用它时没有捕获该数组:-

function get_classes() {
    $Opportunity_Id = $this->input->post('Opportunity_Id');
    $classes = $this->ion_auth_model->get_classes($Opportunity_Id);   <--- changed here

    foreach ($classes as $class):
        $results[] = array(
                        "Class_Number" => $class->Class_Number,
                        "Class_Date" => $class->Class_Date,
                        "Start_Time" => $class->Start_Time,
                        "End_Time" => $class->End_Time
                    );
    endforeach;

    echo json_encode($results);
}

【讨论】:

  • 就是这样!我的愚蠢错误。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
相关资源
最近更新 更多