2011-07-28 15 views
3

データベースは国と都市で構成されています。jQueryを使ってPHPでカスケードドロップダウンリストを作成する方法

まずケース - 成功し:

  1. 国リストは、ページのロード時にドロップボックスに読み込まれます
  2. 市リストはページロードのドロップボックスに移入されます - 人口の都市リスト は、デフォルトの国に基づいています。

後者の場合は、 - それを作ることができませんでした:

  1. ユーザーは/私はjQueryのを使用する必要があります知っている選択した国

に応じて変更される国

  • 市のリストを変更しますAjax。私は試みましたが、私はプログラミング経験の不足のために私の問題を解決することができませんでした。私のリストはXMLではなくデータベースから取り出されます。私はただの解決策が必要です。私はそれを単純で愚かに保つ必要があります。

    私は、オブジェクト指向ではなく、通常のPHPコーディングスタイルを使用しています。

    どうすればいいですか?関連するすべてのリソースが評価されます。

  • 答えて

    6
    $("#country").change(function(){ 
        $('#city').find('option').remove().end(); //clear the city ddl 
        var country = $(this).find("option:selected").text(); 
        alert(country); 
        //do the ajax call 
        $.ajax({ 
         url:'getCity.php' 
         type:'GET', 
         data:{city:country}, 
         dataType:'json', 
         cache:false, 
         success:function(data){ 
    
         data=JSON.parse(data); //no need if dataType is set to json 
         var ddl = document.getElementById('city');      
    
         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); 
    
        } 
        }); 
    
    }); 
    

    。それは完全に正常に動作します

    +0

    あなたのコードを確認してください - あなたは変数データとobjを混同しています。 – crafter

    +0

    ありがとう!非常に役立ちます! – user1773209

    +0

    先ほど指摘したように、objは存在しません。 – user1773209

    1

    .change() jqueryメソッドを使用して、選択ボックス値の変更時にajax呼び出しを行うことで、これを行うことができます。あなたのgetCity.php

    $country = $_GET['city']; 
    
    //do the db query here 
    
    $query = "your query"; 
    $result = mysql_query($query); 
    $temp = array(); 
    while ($row = mysql_fetch_assoc($result)) { 
    
    if(empty($temp)) 
    { 
        $temp=array($row['city']); 
    } 
    else 
    { 
        array_push($temp,$row['city']); 
    } 
    
    } 
    echo (json_encode($temp)); 
    
    関連する問題