首页 > 解决方案 > jQuery通过JSON提交数据后不显示响应

问题描述

使用 JSON 提交数据时,jQuery 显示响应时出现问题。

这是我的 HTML

<input required="" width="100%" name="category_id" id="category_id" 
class="form-control">

<input required="" width="100%" name="agent_id" id="agent_id" 
class="form-control">

<input required="" width="100%" name="year" id="year" 
class="form-control">

<button type="button" onclick="historyForm()" title="fetch history"> 
view</button>

<div id="ajax-content">
</div>

这是我的脚本

    <script type="text/javascript">
    function historyForm() {

    $.ajax({
        url: '<?php echo base_url();?>index.php?staff/fetch_history',
        method: 'POST',
        dataType: 'json',
        data: {
            category_id: $("#category_id").val(),
            agent_id: $("#agent_id").val(),
            year: $("#year").val(),
        },
        success: function (response) {
            jQuery('#ajax-content').html(response);
        }
    });
   }

  </script>

这是我的控制器

function fetch_history()
{
    $response = array();
    $category_id = $_POST["category_id"];
    $agent_id = $_POST["agent_id"];
    $year = $_POST["year"];
    $page_data['category_id']    =   $category_id;
    $page_data['agent_id']    =   $agent_id;
    $page_data['year']    =   $year;
    $response = $this->load->view('backend/staff/history_result' , 
 $page_data);
    echo json_encode($response);
}

我没有看到任何响应和任何错误,但是当我尝试$page_data手动编写时,假设$year = '2018', $agent_id = 1 and $category_id = 2我得到了响应。

可能是什么问题?

标签: jqueryjsonajaxcodeigniter

解决方案


尝试在您的控制器中使用以下代码

function fetch_history()
{
    $response = array();
    $category_id = $_POST["category_id"];
    $agent_id = $_POST["agent_id"];
    $year = $_POST["year"];
    $page_data['category_id']    =   $category_id;
    $page_data['agent_id']    =   $agent_id;
    $page_data['year']    =   $year;
    $response = $this->load->view('backend/staff/history_result' , 
 $page_data);

    $newResponse = ['result'=>$response];

    echo json_encode($newResponse);
}

并获得成功的结果

响应结果

检查它是否有帮助..


推荐阅读