Php 如何进行AJAX搜索
我正在尝试对一个网站进行AJAX搜索 HTML:Php 如何进行AJAX搜索,php,jquery,Php,Jquery,我正在尝试对一个网站进行AJAX搜索 HTML: $(函数(){ var search_text=''; $(“表单#搜索输入[name=submit]”)。单击(函数(){ search_text=$('form#search input[name=search]')。val(); $.get('../search.php',{s:search_text}); 返回false; }); }); 在search.php文件中,我有以下内容: 首先,禁用Javascript后,表单将无法使用
$(函数(){
var search_text='';
$(“表单#搜索输入[name=submit]”)。单击(函数(){
search_text=$('form#search input[name=search]')。val();
$.get('../search.php',{s:search_text});
返回false;
});
});
在search.php文件中,我有以下内容:
首先,禁用Javascript后,表单将无法使用。我希望您知道,因为您的表单本身没有提交元素
记住这一点,您应该使用submit()
事件将其附加到表单,然后在单击图像时触发该事件
$(function() {
var search_text = '';
$('#search').bind('submit',function() {
search_text = $('input[name=search]', $(this)).val();
$.get('../search.php',{ s: search_text });
return false;
});
$('#search img[name="submit"]').click(
$('#search').trigger('submit');
});
});
或者更好的方法是使用。一个问题是get
没有回调-您ping服务器,但对回复不做任何操作:
$.get("/search.php", { s: search_text }, function(data){
alert("Data Loaded: " + data);
});
如果要通过AJAX发送数据,必须在表单的submit event中返回false来取消事件,以避免发送双重数据
$(函数(){
var_myform=$(“form#search”);
$(_myform).find(“输入[name='submit']”)。单击(函数(e){
e、 停止传播();
var search_text=$(_myform).find(“输入[name='search']”)val();
$.get(“../search.php”,{s:search_text});
});
});
在PHP代码中,如果您通过GET发送数据,您将不会收到任何POST信息
为此,您应执行以下操作:
$(函数(){
var_myform=$(“form#search”);
$(_myform).find(“输入[name='submit']”)。单击(函数(e){
e、 停止传播();
var search_text=$(_myform).find(“输入[name='search']”)val();
$.post(“../search.php?s=“+search_text,{“submit_x”:“}”);
});
});
当我在搜索框中写入某个内容并单击“搜索”时,什么也没有发生,因此我想知道是否需要将某个内容从search.php发回包含表单的html页面。您返回的是一个不可见的元元素。回送一个P标签,看看回送后会发生什么(搜索已找到
);仍然没有发生任何事情,它只是停留在html页面中,标记也没有出现。此外,在php脚本中,您正在测试一个不存在的变量:if(isset($\u POST['submit\u x']){使用name=“submit\u x”添加一个输入并将其更改为$_GET而不是$_POST.ah对此表示抱歉。没有注意到。更正。如果OP试图重定向用户,您可能已经在:$(“#搜索”)。submit();
可以在这里工作,因为表单具有action=“search.php”
。