2012-05-02 8 views
0

こんにちはみんなの作品注文JSON配列が、私はこのコードを持っているChromeで

$Sql = "SELECT * FROM tabmakes 
    WHERE Type_Id = '1' 
    ORDER BY Make_Name Asc"; 
$Query = mysql_query($Sql,$Conn) or die(mysql_error($Conn)); 
$marcas = array(); 
    while ($Rs = mysql_fetch_array($Query)) { 
    $marcas[ $Rs['Marca_Id'] ] = $Rs['Marca_Nome']; 
    } 
    asort($marcas); // tried using asort only works on firefox  
    echo (json_encode($marcas)); 

と、これは私の

$("#div-test-1").change(function(){ 
    var tmpTipo = $(".buscaMarcas").val(); 
    $.getJSON("/php/getMakes.php",{tipo: tmpTipo, marca: $(this).val()}, function(resposta){ 
     if(resposta === null){ 
      var options = '<option value="">-</option>'; 
     } 
     else{ 
      var options = '<option value="">-</option>'; 
      $.each(resposta, function(key, val) { 
       options += '<option value="' + key + '">' + val + '</option>'; 
      }); 
     } 
     $("select.recebeModelos").html(options); 
     $("select.recebeEstilos").html('<option value="">-</option>'); 
    }); 
}); 

JSON出力はNAMEによって順序付けられて来たjqueryのが、選択されたGETすべての情報が入力され、値はIDによって順序付けられます。

どのように私は結果を取得し、NAMEによって選択された選択に表示することができます。

ありがとうございました。

答えて

0

PHPで配列を作成しています。 PHPから何が出てくるかに基づいてNAMEの順序でビルドしていますが、PHPがjson変換プロセスを開始するときには、数値キー順で構築します。その後、配列をasort()まで実行することによって、数値キーの順序を強制します。それは、配列の組み込み方法を変更することで周り

一つの方法:もちろん

$data = array(); 
while($row = mysql_fetch_assoc($result)) { 
    $data[] = array('id' => $row['id'], 'name' => $row['name']) 
} 

、これは新しい構造を処理するために、JSコードの変更を必要としますが、これは名前の順序を保存します。

+0

私はFirefoxがうまく動作する理由を理解していませんが、chromeではありません。私は可能な限り、これを修正せずにPHPコードを修正することを継続的に見ていきます。becuzはこのようなコードをモデル、など - ので、私は離れてjqueryの何かを行うために離れて探しています..ありがとう – Alvaro

+0

@ Alvaro、あなたはおそらく、それを引き起こすいくつかの他のjavascriptやブラウザアドオンがあります。 chromeが独自にhprofを変更することを決定するのは非常に間違いでしょう。 – goat

+0

私はすべてのjavascriptを削除して、最後のjqueryバージョンでこれを試してみると、これは私にクレイジーにさせてくれる新鮮なインストールに必要な機能だけです。 – Alvaro

関連する問題