ユーザーが単純なドロップダウンから何かを選択したときに描画される ajax 駆動のページがあるという問題に遭遇しました。
<select id = "selectdepartment">
<option id = "default">Select an option...</option>
....
</select>
ページの残りの部分は jquery を使用して描画されます.change()
。
$('#selectdepartment').change(function(){
});
次に、いくつかの ajax to php スクリプトを実行します。すべてがうまく機能します。問題は、ajax で描画されたフォームを送信すると ( $_SERVER['PHP_SELF'];
. ユーザーは、別のオプションに移動してから、最初に選択したオプションに戻って を再起動する必要があります.change()
。それは最悪です。
すべてのフォームで php 変数を渡し、ページの読み込みごとに設定されている変数を確認し、それがページ パーツを描画するかどうかを確認することで、これを修正できますが、これはコードがかなり乱雑になり、望ましくありません。
jquery ライブラリでこれを行う方法が必要ですが、JavaScript 言語全般に関する私の知識は、私が望んでいるものではありません。誰かが役立つヒントを共有してくれたら、私のためにそれをしないでください、私はそのように学びません:)
編集: .trigger を使用したコード
$('#selectdepartment').change(function(){
var department = $('#selectdepartment').val();
var day = $('#data').data('day');
var month = $('#data').data('month');
var year = $('#data').data('year');
//alert (department);
if(department === "Select an option..."){
$('.hiddenuntildepartmentisselected').css({"display":"none"});
}
else{
$('.hiddenuntildepartmentisselected').css({"display":"block"});
}
showpoints(department);
drawpointstable(department, day, month, year);
displaytheuseresforselecteddepartment(department, '');
$('#sendthedepartment').val(''+department+'');
$('#hiddendepartmentidforaddinganewpoint').val(''+department+'');
}).trigger('change');//end run functions