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