Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何进行AJAX搜索_Php_Jquery - Fatal编程技术网

Php 如何进行AJAX搜索

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后,表单将无法使用

我正在尝试对一个网站进行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后,表单将无法使用。我希望您知道,因为您的表单本身没有提交元素

记住这一点,您应该使用
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”