【发布时间】:2011-08-08 08:06:22
【问题描述】:
我是 PHP 的初学者,我想执行以下操作,但我不知道如何执行此操作:
我有一个网页,我要求用户提交他的邮政编码。在他/她提交之后,页面重定向到另一个 PHP 页面,我在数据库中搜索与邮政编码对应的城市。然后我写:“你所在的城市是……”。 我想要的是只使用一个网页(用户没有可见的重定向)来实现这一点。我知道我们可以使用 header 重定向到第一页,但我不知道如何传输内容(城市)。
【问题讨论】:
我是 PHP 的初学者,我想执行以下操作,但我不知道如何执行此操作:
我有一个网页,我要求用户提交他的邮政编码。在他/她提交之后,页面重定向到另一个 PHP 页面,我在数据库中搜索与邮政编码对应的城市。然后我写:“你所在的城市是……”。 我想要的是只使用一个网页(用户没有可见的重定向)来实现这一点。我知道我们可以使用 header 重定向到第一页,但我不知道如何传输内容(城市)。
【问题讨论】:
您可以在查询参数中传递城市名称,如
headers('Location: serachdatabase.php?city='.$cityname);
但这可能不是您想要的。您可以考虑使用 Ajax 来执行此操作。使用 Ajax 页面不会完全刷新,只能刷新页面的一部分。 Ajax,如果你不知道的话,它被广泛使用。
【讨论】:
听起来您正在寻找 AJAX 帖子。对于初学者来说,这听起来像是一个高级主题,但是如果您查看 jQuery 之类的框架 (http://api.jquery.com/jQuery.post/),您会发现它非常简单。
试试这样的:
$('#myform').submit(function() {
var url = 'databasequery.php';
var postcode = $('#postcode').val();
$.post( url, { postcode: postcode },
function( data ) {
$( "#result" ).empty().append( data );
}
);
return false;
});
在您的 HTML 中,您可以将表单标记为 myform,并创建一个 ID 为“result”的空 div。
您的“databasequery.php”文件应该接受一个名为 postcode 的 POST 变量,并简单地输出您希望在页面上显示的响应。
【讨论】:
您可以使用 header("Location:..."); 进行重定向;
或者你可以简单地发布一个表格
<form method="post" action="yourURL">
Postal code <input type='text' name='postal_code' /> <br/>
<input type="submit" value="submit form" name="submit" />
</form>
然后在php中做这样的事情:
<?php
$postal = $_POST["postal_code"];
// match against databse..
?>
请注意,将此代码放入 mysql 查询中并不“安全”!
【讨论】:
解决问题的关键是 GET 和 POST 参数。了解 HTML 表单。
【讨论】: