私のhtmlページでは、いくつかのオプションを選択しています。
オプションを選択すると、オプションの値を php スクリプトに渡して ajax 呼び出しが発生し、ページに追加された特定の ID を持つ html フラグメント (別の選択) が返されます。
ユーザーが最初の選択から別のオプションを選択すると、イベントが再び発生し、ajax 呼び出しが実行され、別の HTML フラグメント (同じ ID を持つ) がページに追加されます。
イベントが2回目に発生した場合、新しい要素を追加する前に、追加された要素がページから削除されるようにします。
現時点では、私はこのコードを使用しています:
$(document).ready(function() {
$("#id_serie").change(function() { //#id_serie is the if of the first select
if ($("#id_subserie_label")) { //#id_subserie_label is the id of the html element returned by the ajax call
console.log("Removing");
$("#id_subserie_label").empty().remove();
}
var url = 'myscript.php';
var id_s = $(this).val();
$.post(url, {id_serie: id_s}, function(data) {
$("#id_serie").parent().after(data);
});
});
});
ただし、これは機能しません。2 番目の ajax 呼び出しによって返された html 要素は、最初の呼び出しから返された要素の後に追加されます (スクリプトが読み込まれたときに、ID #id_subserie_label を持つ要素がページにないため?)。
どうすれば必要なものを達成できますか?