我正在尝试使用jQuery将序列化表单数据传递给PHP控制器。成功处理后,用户将被重定向到结果页面。我没有看到任何重定向发生,告诉我控制器出了问题。我看到一个成功的AJAX回调。
参数是'zipcode'和'token'。控制器将验证令牌,如果无效则死亡,或者如果有效则执行必要的逻辑。
我无法找到任何与我的代码不相符的内容,并且可以使用额外的一组眼睛。
HTML
<form action="" class="zipsearchform">
<div class="form-group">
<h2>Search by Zip Code</h2>
<label for="zip-search-field">Enter a Zip Code</label>
<input type="text" class="form-control" id="zip-search-field" name="zipcode">
<br>
<input type="hidden" name="token" value="<?php if (isset($token)) echo $token; ?>">
<button type="submit" class="btn btn-default zipsubmitbtn">Find Notaries</button>
</div>
</form>
JS
$('.zipsubmitbtn').on('click', function(){
event.preventDefault();
var params = $('form.zipsearchform').serialize();
$.ajax({
type: 'post',
url: 'parseByZip.php',
data: {paramString: params},
async: true,
success: function(){
alert(params);
}
});
});
PHP控制器
<?php
include_once 'resources/functions.php';
$zipcode = $_POST['zipcode'];
$token = $_POST['token'];
if (validate_token($token) && isset($zipcode)) {
$pattern = '/^\d{5}([\-]?\d{4})?$/';
if (preg_match($pattern, $zipcode)) {
$radius = 25;
include_once 'resources/apizip.php';
header("Location: notaries.php?lat=$latitude&lon=$longitude&distance=$radius");
} else {
echo "Zip code field cannot be empty and zip code must have the proper format of 00000 or 00000-0000";
}
} else {
echo 'Unable to handle your request right now.';
}