我在使用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
我得到了响应。
可能是什么问题?
答案 0 :(得分:1)
在控制器中尝试以下代码
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);
}
使用
成功获得结果response.result
检查是否有帮助。
答案 1 :(得分:1)
您正尝试通过json发送HTML页面...将dataType
的{{1}}更改为:
$.ajax
答案 2 :(得分:0)
您在页面视图中缺少第三个参数TRUE,因此直接将其输出而不是保存到$ response中。
因此更改此行
$response = $this->load->view('backend/staff/history_result',$page_data);
添加第3个参数TRUE,以防止其直接输出到屏幕上,该屏幕将出现在您的响应中。
$response = $this->load->view('backend/staff/history_result',$page_data, TRUE);