キーワードで検索する単一のフォームがあります。フォームは別のページへの ajax リクエストを実行し、結果を success 関数に出力します。
たとえば、映画のタイトルを検索しています。したがって、「エルム街の悪夢」AJAX POST を別のページに入力すると、ページは GET を受け取り、$('#status').html(response);
各結果は、映画のタイトルと「Go」入力ボタンを含むフォームであり、ユーザーは「はい、これは私が欲しい映画です」と言うことができます。
応答が正常に入力され始め、突然、結果が終了する前にランダムな形式の応答が送信され始めます。
「映画のタイトル」キーワードを取得して結果を入力するコードは次のとおりです。
<?php
$myid = strtoupper($_REQUEST['thetitle']);
$titles = $tmdb_V3->searchMovie($myid,'en');
foreach($titles['results'] as $result) {
?>
<form name="<?php echo htmlspecialchars($result['id']); ?>">
<input type="hidden" name="mid" id="<?php echo htmlspecialchars($result['id']); ?>" value="<?php echo htmlspecialchars($result['id']); ?>" />
Title: <?php echo htmlspecialchars($result['title']); ?>
<input type="submit" name="submit" class="button" value="Go"></div>
</form>
<?php
}
?>
<script type="text/javascript">
$(document).ready(function(){
$("form").submit(function() {
var id = $(this).children('input[type="hidden"]').attr('value');
$.ajax({
async: false,
type: "POST",
url: "sx.php",
data:"mid="+ id,
cache: false,
timeout: 30000,
success: function(data){
$('#status').html(data);
}
});
return false;
});
});
</script>
私が言ったように、結果は #results div に入力され始め、結果を完了する前に突然「新しい」POST 要求が送信されます。
「検索 => 結果 => 映画情報を取得」という 3 ステップの機能です。
結果は「不明」です結果の配列がわからないため、.when を使用できないと思います
これはfirebugのスクリーンショットです:
最初の ajax リクエストが完了し、ユーザーが実際に新しい送信ボタンをクリックするまで、新しいフォームの送信を停止するにはどうすればよいですか?