2011-12-09 9 views
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)); 
    ?> 

それは、これまでに更新することを拒否し、かなりなぜ見つけることができませんか?すべてのアドバイス

+0

を試すことができますが、バック 'json'応答を得るのですか? Firebugコンソールでチェックしてもらえますか? – Rafay

+0

こんにちは、はい、それはすべてうまくいきます - 私はfirebugで応答配列を見ることができます...期待どおりの配列として戻ってきた、ちょうど私のスクリプトは作成していないようです返される配列に基づくオプション値? – Marc

+0

あなたのjsonレスポンスを投稿することができます – Rafay

答えて

1

を事前に

おかげで、あなたは

//json is the json you have recieved in the success handler 

$("#engine").empty(); 
$.each(json, function(index, item) { 
      $("<option/>",{value:item,text:item}).appendTo("#engine"); 

     }); 

DEMO

関連する問題