我有一个使用AJAX(WordPress(表单来过滤结果的搜索页面。假设results.php
为例。
我想做的是在另一个页面上使用相同的表单home.php
但在提交后将重定向到带有其结果的results.php
搜索页面(进入#response
(。将表单数据传递和重定向到 AJAX 结果页面的最佳方法是什么?
阿贾克斯表单
$('#filter').submit(function(e){
e.preventDefault();
var filter = $('#filter');
$.ajax({
url: filter.attr('action'),
data:filter.serialize(),
type: 'POST', // POST
dataType: 'json',
success: function(response) {
$('#response').html(response);
}
});
return false;
});
形式
<form action="<?php echo site_url() ?>/wp-admin/admin-ajax.php" method="POST" id="filter">
<input id="address" name="property_location" placeholder="Input Address" type="text"/>
<button type="submit" id="filter">Search</button>
<input type="hidden" name="action" value="my_search"> //my_search taken from ajax function query.
</form>
如果您在提交表单时重定向页面,则无需将值传递回主页.php然后重定向。
您仍然可以使用 AJAX 提交,但从 PHP 端进行重定向。保留 AJAX,以防出现需要通知用户的错误。
因此,在您提交到的 PHP 文件中,不要回显任何内容,只需重定向即可。如果出现错误,请发回适合错误消息的任何内容。