ドロップダウン リスト オプション、入力ボックス、送信ボタンを含むフォームがあります。選択オプションは動的にコンパイルされます。このフォームをページに挿入して配置します。
<div id="dropdown">
<?php include("./listforward.php"); ?>
</div>
listforward.php が含まれています。
...
<form id="changeforwardForm" method="post" action="changeforward.php" class="ajaxform">
...
</form>
changeforward.php はいくつかの作業を行い、メッセージを表示します。
<?php echo '<div style="color:red">'.$msg.'</div>'; ?>
送信後、このメッセージはページの上部近くに表示されます
<div id="testDiv"></div>
また、フォーム全体がリロードされ、更新されたリスト オプションが表示されます。私が抱えている問題は、メッセージが最初の送信から上部に 1 回だけ表示され、2 番目の送信で空白のページが開き、そこに表示されることです。
これは .live() または .on() と関係があることは承知していますが、私の人生では、それを適用する方法がわかりません。
私の外部 Javascript ファイル
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery.form.js"></script>
<script type="text/javascript">
// prepare the form when the DOM is ready
$(document).ready(function(){
var options = {
target: '#testDiv', // target element(s) to be updated with server response
success: showResponse // post-submit callback
};
// bind form using 'ajaxForm'
$('.ajaxform').ajaxForm(options);
});
// post-submit callback
function showResponse(responseText, statusText, xhr, $form) {
$("#dropdown").load("index.php #dropdown");
}
</script>
同じページに別のフォームもあります(現在無効になっています)。このフォームの出力をターゲットにして、そのメッセージを #testDiv に表示したいと思います。
正しい方向へのキックは大歓迎です!
よろしくスティーブン