私は以前のhtml selectオブジェクトで行われた選択に従ってhtml selectリストを更新しようとしています。私のjqueryは以下の通りです。これは正しく呼び出されています。<select>のリストをjqueryとajaxを使用して更新する
include 'databaseInterface.php';
$brand = $_GET["q"];
$typesData = databaseInterface::getBrandTypes($brand);
return $typesData;
この呼び出し:私は私のMySQLデータベースとのインターフェースにシングルトンを使用していたよう
var brandName = $("#Brand").val();
$.get("updateTypes.php?q="+brandName, function(data) {
$("#Type").remove();
var typeData = JSON.parse(data);
for (loop=0; loop < typeData.length; ++loop) {
$("#Type").options.add(new Option(typeData[loop]));
}
});
、このjqueryの関数は「行く-の間で」以下であるupdateTypes.phpと呼ばれる.PHPファイルを呼び出しますgetBrandTypes機能は以下の私のシングルトンに:
$query = "SELECT psTypeName FROM types WHERE brands_psBrandName='$BrandName'";
$result = mysqli_query($con, $query) or die ("Couldn't execute query. ".mysqli_error($con));
$resultArray = array();
while ($row = mysqli_fetch_assoc($result)) {
extract($row);
$resultArray[] = $psTypeName;
}
return json_encode($resultArray);
Webページが正しくjqueryの関数から既存のオプションが削除されますが、それらを更新することができません。 jqueryのJSONデータをデコードすると間違っているようです。なぜそれは間違っているのですか?選択オブジェクトを更新するためのループは適切ですか?
を使用していた「オプション」プロパティを持つ生のDOMオブジェクトを参照$( "#Type")。remove(); 'というステートメントは、選択オブジェクトを削除します。正しい方法は '$("#Type ").html( '');'を使用することです。答えのコードにも句読点がありません。私はそれを修正した。 –