Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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_Javascript_Ajax - Fatal编程技术网

Php 如何重新构造AJAX搜索表单

Php 如何重新构造AJAX搜索表单,php,javascript,ajax,Php,Javascript,Ajax,我有一个页面(A),它有一个输入字段,一旦你提交了它,它就会发出一个AJAX调用并显示结果。现在,我需要在另一个页面(B)上有一个搜索字段,一旦你提交它,它会将你重定向到前一个页面(a),结果会显示在第一个页面(a)上 处理此问题的最佳方法是什么?您可以让pageA.php获取一个包含搜索关键字的查询参数,如果为该参数指定了一个值,则根据该值显示结果。结果将是一个简单的include,这样它就可以用于AJAX查询和普通查询。有一个单一的方法来执行搜索功能。可以通过两种方式调用此方法。。 1.使用

我有一个页面(A),它有一个输入字段,一旦你提交了它,它就会发出一个AJAX调用并显示结果。现在,我需要在另一个页面(B)上有一个搜索字段,一旦你提交它,它会将你重定向到前一个页面(a),结果会显示在第一个页面(a)上


处理此问题的最佳方法是什么?

您可以让
pageA.php
获取一个包含搜索关键字的查询参数,如果为该参数指定了一个值,则根据该值显示结果。结果将是一个简单的include,这样它就可以用于AJAX查询和普通查询。

有一个单一的方法来执行搜索功能。可以通过两种方式调用此方法。。 1.使用Ajax 2.使用url参数

当您从B页调用A页时,您将以url参数的形式传递搜索查询。。搜索完成后,页面显示结果

使用页面A进行搜索时。。调用ajax方法并返回json/xml数据

基本上,您的页面只需要合并这两种逻辑即可

通过一个逻辑(如果ajax加载时间不是问题的话),您可以执行如下操作(或其任何变体):


函数ajax(术语){
if(term==null)
返回false;
//搜索框的ajax函数
//当前可能在单击/提交时被激发?
}
$(文档).ready(函数(){
ajax();
});
或者,您可以将内容(“ajax\u request.php?param=$PostValue”)归档到ajax处理程序并输出,而无需加载ajax调用。

那么您想要这个ajax

为了使用Ajax,我建议您创建一个页面Ajax.php,它所做的只是接受一个查询并输出结果

ajax.php?query=foo

然后将结果输出到一个列表或其他东西中

然后使用javascript显示它


但是,只有当您想使用ajax时,才可以这样做。

我不确定为什么您需要在这个搜索中使用两个单独的页面。最简单的方法就是将用户从B页重定向到A页,搜索已经填写完毕。换句话说,B页实际上什么都不做:

<?php
   /**
    * Page B
    */
   if(isset($_REQUEST['b_search'])) {
      header("Location: a_search.php?a_search=$_REQUEST[b_search]");
   }
   echo //page content
?>

<?php
   /**
    * Page A
    */
   $search = isset($_REQUEST['a_search']) ? $_REQUEST['a_search'] : null;
   //handle request for non-JS users, I hope
   echo //page content with search filled in
?>

/**
 * JS
 */
document.ready = function () {
   if (document.getElementById('search_field').value != null) {
      //make ajax call
   }
}

/**
*JS
*/
document.ready=函数(){
if(document.getElementById('search_field')。值!=null){
//打ajax电话
}
}

我使用ajax、jquery和json制作

在第(A)页中,您拨打电话。。。


这一页(A)是这样的




Id
Name
Score




<?php
   /**
    * Page B
    */
   if(isset($_REQUEST['b_search'])) {
      header("Location: a_search.php?a_search=$_REQUEST[b_search]");
   }
   echo //page content
?>

<?php
   /**
    * Page A
    */
   $search = isset($_REQUEST['a_search']) ? $_REQUEST['a_search'] : null;
   //handle request for non-JS users, I hope
   echo //page content with search filled in
?>

/**
 * JS
 */
document.ready = function () {
   if (document.getElementById('search_field').value != null) {
      //make ajax call
   }
}
$('input[name="find"]').live('click',function(){ if($(this).val()){ $.getJSON('find.php?users=' + $(this).val(), function(data) { var rows= ""; $.each(data.users, function(i,user){ rows+= i % 2 ? '<tr class="flip">' : '<tr class="flop">'; ... rows+= '<td>' + user.id + '</td>'; rows+= '<td>' + user.name + '</td>'; rows+= '<td>' + user.score + '</td>'; rows+= '</tr>'; }); $('#list tbody').html(rows); } }); });


<?php

$user = $_GET['users'] ;

// Search code by field ... 

// Print de result in JSON format ...

?>


{ 
  "action" : "find user",
  "founds" : "2",
  "users"  : [
       {
          "id"    : "33",
          "name"  : "Peter Park",
          "score" : "343"

       },
        {
          "id"    : "1",
          "name"  : "Clark Kent",
          "score" : "1200"
       }
  ]
}