当我console.log(data);
获取Ajax结果数据时,我获取整个页面源而不仅仅是结果,尽管结果显示在搜索表单div中(仅在返回的数据中)
怎么做 我只得到数据?
这是观点:
<div id="form-all">
<form name="search" action="html_form_action.asp" method="post">
<input type="text" name="search" />
<input type="submit" value="חפש" />
</form>
</div>
<script>
$("form[0] :submit").live("click", function(event) {
event.preventDefault();
$.ajax({
type: "POST",
url: "<?= site_url('pages/search') ?>",
data: {company : $("form[0] :text").val()},
success: function(data) {
console.log(data);
}
});
});
</script>
这是控制器:
function search1()
{
$data['page_title'] = 'Search';
$this->load->view('head', $data);
$this->load->view('pages/search', $data);
$this->load->view('footer');
return json_encode($this->Company->get_companies_by_name($this->input->post('company')));
}
答案 0 :(得分:1)
是。这是对的。
jQuery AJAX请求的data属性与返回值无关 - 这完全是服务器发送的任何内容与success方法中发生的任何事情相结合的责任。你需要做一些重构。
如果是我,我会考虑这个:
function ajax_search()
{
echo json_encode(
$this->Company->get_companies_by_name(
$this->input->post('company')
)->result());
}
然后在jQuery中,只需将其更改为:
event.preventDefault();
$.ajax({
type: "POST",
url: "<?= site_url('pages/ajax_search') ?>",
data: {company : $("form[0] :text").val()},
success: function(data) {
console.log(data);
}
});
});
答案 1 :(得分:0)
试试这个:
data: {"company" : $("form[0] :text").val()},