クエリ文字列に特定のパラメーターが設定されている場合、ページの読み込み時にページにフォームを送信しようとしています。フォームは ajax を使用して送信され、正常に動作し、クエリ文字列からのフォーム フィールドの事前入力も問題ありませんが、フォームを自動的に送信しようとしても、ページ読み込みの無限ループに陥ります。
PHP
// top of page
<?php
if (isset($_GET['postcode'])) {
$postcode = trim($_GET['postcode']);
} else {
$postcode = '';
}
if (isset($_GET['phone_num'])) {
$phone_num = trim($_GET['phone_num']);
} else {
$phone_num = '';
}
?>
jQuery
/*
// causing infinite page loads
if ($('input[name="phone_num"]').val() != '' || $('input[name="postcode"]').val() != '') {
$('#check').trigger("click");
return false;
}
*/
$('form').submit(function() {
$.get("script.php", $(this).serialize(), function(data){
// process results
}, "json");
return false;
});
HTML
<form class="navbar-form pull-right" action="" method="get">
<input class="span2" type="text" name="phone_num" placeholder="Phone Number" value="<?php echo $phone_num; ?>">
<input class="span2" type="text" name="postcode" placeholder="Postcode" value="<?php echo $postcode; ?>">
<button type="submit" class="btn btn-primary" id="check">Check</button>
</form>
自動フォーム送信に関数を使用する代わりにclick
、同じことを試みました$('form').submit
が、同じ問題が発生します。パラメータが設定されている場合、ajax呼び出しが自動的に行われるように、ページが通常どおり機能することを期待していましたが、明らかにそうではありません。