0
選択した#make ddlに基づいてMySqlテーブルを使用してオプション値を設定する必要があるDDL(#engine)があります。jquery ajax呼び出しでMySqlテーブルからselectオプションを設定する
私は以下のスクリプトをphpファイルに渡しています。私は、クエリの結果を独立して出力することができるので、phpファイルは問題ありません。
しかし、返された配列に基づいて更新するオプション値を取得できません。おそらくGETを使用した結果ですか?私がAJAXで返そうとしているのは初めてです(通常はデータテーブルの更新などに使用します)
スクリプトに何か問題がありますか?
$(document).ready(function() {
$("select#make").change(function(){
$('#engine').find('option').remove().end(); //clear the engine ddl
var make = $(this).find("option:selected").val(); //Need the value not the text
$.ajax({
url:'get-engine.php',
type:'GET',
data:{engine:make},
dataType:'json',
cache:false,
success:function(data){
var ddl = document.getElementById('engine');
for(var c=0;c<obj.length;c++)
{
var option = document.createElement('option');
option.value = obj[c];
option.text = obj[c];
ddl.appendChild(option);
}
},
error:function(jxhr){
alert(jxhr.responseText);
}
});
});
});
とGET-engine.php ..
$make = $_GET['engine'];
$query= ("SELECT * FROM tb_engine where make_id='$make'");
$result = mysql_query($query);
$temp = array();
while ($row = mysql_fetch_assoc($result)) {
if(empty($temp))
{
$temp=array($row['engine_type']);
}
else
{
array_push($temp,$row['engine_type']);
}
}
echo (json_encode($temp));
?>
それは、これまでに更新することを拒否し、かなりなぜ見つけることができませんか?すべてのアドバイス
を試すことができますが、バック 'json'応答を得るのですか? Firebugコンソールでチェックしてもらえますか? – Rafay
こんにちは、はい、それはすべてうまくいきます - 私はfirebugで応答配列を見ることができます...期待どおりの配列として戻ってきた、ちょうど私のスクリプトは作成していないようです返される配列に基づくオプション値? – Marc
あなたのjsonレスポンスを投稿することができます – Rafay