Php 提交搜索查询&;获取搜索结果而不刷新
我想提交搜索查询表单并获取搜索结果,而无需在同一页面上重定向/重新加载/刷新 我的内容是动态的,所以不能使用那些“提交联系人表单而不刷新页面,成功后回复”。这就是AJAX的用途。 在jQuery中(如果您正在寻找其他库,请道歉)Php 提交搜索查询&;获取搜索结果而不刷新,php,javascript,jquery,Php,Javascript,Jquery,我想提交搜索查询表单并获取搜索结果,而无需在同一页面上重定向/重新加载/刷新 我的内容是动态的,所以不能使用那些“提交联系人表单而不刷新页面,成功后回复”。这就是AJAX的用途。 在jQuery中(如果您正在寻找其他库,请道歉) 您可能希望从网上提供的数千本“面向初学者的AJAX”教程中的任何一本开始。用这个词在谷歌上搜索应该会让你走 首先,请尝试以下方法: 阅读完这些之后,请记住,您实际上不需要编写任何XHR处理代码。正如Jamie所指出的,jQuery或其他众多Javascript库可以极
您可能希望从网上提供的数千本“面向初学者的AJAX”教程中的任何一本开始。用这个词在谷歌上搜索应该会让你走 首先,请尝试以下方法:
阅读完这些之后,请记住,您实际上不需要编写任何XHR处理代码。正如Jamie所指出的,jQuery或其他众多Javascript库可以极大地简化客户端AJAX代码。如果您能在开始编写代码之前了解一些AJAX的基础知识,那就太好了。 Ajax是解决您的问题的精确方法。它异步地向服务器发出请求,获取结果,并且可以使用结果修改页面中的数据。这一切都是用JavaScript完成的 假设您有这样一个html:
<html>
<body>
<div id="myDiv"> your content area</div>
<button type="button" onclick="loadByAjax()">Change Content</button>
</body>
</html>
<script type="text/javascript">
function loadByAjax()
{
$.ajax({
type: "POST",
url: "yourserverpage.php",
data: "searchkey=data_from_user_input",
success: function(response_data){
$('myDiv').html(response_data)
}
});
}
</script>
您的内容区域
更改内容
现在,您的javascipr代码如下:
<html>
<body>
<div id="myDiv"> your content area</div>
<button type="button" onclick="loadByAjax()">Change Content</button>
</body>
</html>
<script type="text/javascript">
function loadByAjax()
{
$.ajax({
type: "POST",
url: "yourserverpage.php",
data: "searchkey=data_from_user_input",
success: function(response_data){
$('myDiv').html(response_data)
}
});
}
</script>
函数loadByAjax()
{
$.ajax({
类型:“POST”,
url:“yourserverpage.php”,
数据:“searchkey=来自用户输入的数据”,
成功:功能(响应数据){
$('myDiv').html(响应数据)
}
});
}
因此,基本上只要点击按钮,JavaScript就会被执行。它将调用php服务器端脚本,传递从用户输入获得的参数,检索响应数据并将其放入div中。
因此,您的页面将在不完全刷新的情况下更新
另外,请理解,我在这里使用jquery库实现Ajax功能。为了提交表单,从数据库收集结果,并在不刷新页面、重定向或重新加载的情况下将其呈现给用户,您需要:
话虽如此,这里有一个有效的例子: 我们有一个表“persons”,其中有一个字段“age”和一个字段“name”,我们将搜索32岁的人。接下来,我们将在
div
中显示他们的姓名和年龄,并在表格中显示他们的姓名和年龄,表格背景为粉红色,文本非常大。
为了正确地测试这一点,我们将有一个灰色的页眉,正文和页脚
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="pt" dir="ltr">
<head>
<title>Search And Show Without Refresh</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<!-- JQUERY FROM GOOGLE API -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("#lets_search").bind('submit',function() {
var value = $('#str').val();
$.post('db_query.php',{value:value}, function(data){
$("#search_results").html(data);
});
return false;
});
});
</script>
</head>
<body style="margin:0;padding:0px;width:100%;height:100%;background-color:#FFFFFF;">
<div style="width:1024px;margin:0 auto;height:100px;background-color:#f0f0f0;text-align:center;">
HEADER
</div>
<div style="width:1024px;margin:0 auto;height:568px;background-color:#f0f0f0;text-align:center;">
<form id="lets_search" action="" style="width:400px;margin:0 auto;text-align:left;">
Search:<input type="text" name="str" id="str">
<input type="submit" value="send" name="send" id="send">
</form>
<div id="search_results"></div>
</div>
<div style="width:1024px;margin:0 auto;height:100px;background-color:#f0f0f0;text-align:center;">
FOOTER
</div>
</body>
</html>
<?php
define("HOST", "localhost");
// Database user
define("DBUSER", "username");
// Database password
define("PASS", "password");
// Database name
define("DB", "database_name");
// Database Error - User Message
define("DB_MSG_ERROR", 'Could not connect!<br />Please contact the site\'s administrator.');
############## Make the mysql connection ###########
$conn = mysql_connect(HOST, DBUSER, PASS) or die(DB_MSG_ERROR);
$db = mysql_select_db(DB) or die(DB_MSG_ERROR);
$query = mysql_query("
SELECT *
FROM persons
WHERE age='".$_POST['value']."'
");
echo '<table>';
while ($data = mysql_fetch_array($query)) {
echo '
<tr style="background-color:pink;">
<td style="font-size:18px;">'.$data["name"].'</td>
<td style="font-size:18px;">'.$data["age"].'</td>
</tr>';
}
echo '</table>';
?>
搜索并显示而不刷新
$(函数(){
$(“#让我们搜索”).bind('submit',function(){
var值=$('#str').val();
$.post('db_query.php',{value:value},函数(数据){
$(“#搜索结果”).html(数据);
});
返回false;
});
});
标题
搜索:
页脚
db_query.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="pt" dir="ltr">
<head>
<title>Search And Show Without Refresh</title>
<meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
<meta http-equiv="Content-Style-Type" content="text/css">
<!-- JQUERY FROM GOOGLE API -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript">
$(function() {
$("#lets_search").bind('submit',function() {
var value = $('#str').val();
$.post('db_query.php',{value:value}, function(data){
$("#search_results").html(data);
});
return false;
});
});
</script>
</head>
<body style="margin:0;padding:0px;width:100%;height:100%;background-color:#FFFFFF;">
<div style="width:1024px;margin:0 auto;height:100px;background-color:#f0f0f0;text-align:center;">
HEADER
</div>
<div style="width:1024px;margin:0 auto;height:568px;background-color:#f0f0f0;text-align:center;">
<form id="lets_search" action="" style="width:400px;margin:0 auto;text-align:left;">
Search:<input type="text" name="str" id="str">
<input type="submit" value="send" name="send" id="send">
</form>
<div id="search_results"></div>
</div>
<div style="width:1024px;margin:0 auto;height:100px;background-color:#f0f0f0;text-align:center;">
FOOTER
</div>
</body>
</html>
<?php
define("HOST", "localhost");
// Database user
define("DBUSER", "username");
// Database password
define("PASS", "password");
// Database name
define("DB", "database_name");
// Database Error - User Message
define("DB_MSG_ERROR", 'Could not connect!<br />Please contact the site\'s administrator.');
############## Make the mysql connection ###########
$conn = mysql_connect(HOST, DBUSER, PASS) or die(DB_MSG_ERROR);
$db = mysql_select_db(DB) or die(DB_MSG_ERROR);
$query = mysql_query("
SELECT *
FROM persons
WHERE age='".$_POST['value']."'
");
echo '<table>';
while ($data = mysql_fetch_array($query)) {
echo '
<tr style="background-color:pink;">
<td style="font-size:18px;">'.$data["name"].'</td>
<td style="font-size:18px;">'.$data["age"].'</td>
</tr>';
}
echo '</table>';
?>
我是新手,我甚至不懂基本知识。那么你能详细说明一下吗?既然你是在提交时绑定的,那么最好返回false以防止它以任何方式提交。搜索应该使用刷新完成。你必须学习基本的标准。@Spraspel上校,今天我看到用户讨厌点击页面,等待内容加载等等。。。因此,没有任何刷新解决方案可以使用;)@子母弹上校,你不了解我,也不了解我的工作,所以攻击是没有必要的!另一方面,我提到的是用户而不是我,我这么做是因为我参与的所有项目!(我在第一次和这一次都考虑过)@schraspel上校,此外,你是根据谷歌员工的决定表达你的个人意见?!?我真的相信用户是“老板”,如果用户不想刷新页面,页面就不能刷新!!你同意吗!??回复有点晚,但谷歌在搜索Hanx desau时不再刷新suggestion@desau,您的链接已断开。感谢Zuul提供的描述性回答。它确实帮助我理解了AJAX的角色。