sql >> データベース >  >> RDS >> Mysql

この3レベルの動的ドロップダウンを完了するのに助けが必要です

    私はあなたの問題を本当に理解していませんか?あなたは基本的に、あなたが今していることを、都市のために再び地域のために正確に行う方法を求めていますか?

    cityAjax.phpを作成するように:

    <?php require_once 'core/init.php';
    
    $region_id  =  escape(Input::get('region'));
    
    $select_city = DB::getInstance()->get('citys', array('regionId', '=', $region_id));
    
        if(!$select_city->count()) {
    
            echo 'No City found!';
    
        } else {
    
        ?><select name="city" id="city"><?php   
    
            foreach($select_city->results() as $row) {
    
                $city_id          =   escape($row->cityId);
                $city_name        =   escape($row->cityName);
    
            ?><option value="<?php echo $city_id; ?>" ><?php echo $city_name; ?></option><?php
    
            }
        ?></select><?php        
        }
    

    申し訳ありませんが、あなたの質問は本当に意味がありません...

    更新:

    ああ、私はあなたの問題を理解していると思います。生成された地域の選択で都市セクションをロードする方法がわかりません。

    わかりました、あなたはこのようにそれをすることができます:

    • さらに上で述べたように、最初に都市を取得するロジック用の新しいajax.phpを作成する必要があります。 1つのファイルからすべてを処理する方がよいでしょうが、物事を単純にするために、2番目のphpファイルを使用します。

    • また、ベースhtmlファイルを拡張し、都市のプレースホルダーを追加する必要があります:

      ...地域-州の選択-

      <label for="cat">Cities</label>
      <div id="citydiv">
          <select name="city" id="city">
          <option>--Select State--</option>
          <option></option>
      </div>
      

      ...

    • この新しいプレースホルダーにデータを入力するには、javascript関数も追加する必要があります:

    function showHint(str) {   
        ...        
        xmlhttp.open("GET","ajax.php?country="+str,true);
        xmlhttp.send(null);
        ...   
    }
    
    function showCity(str) {
        var xmlhttp;
        if (str.length==0) {
            document.getElementById("citydiv").innerHTML="";
            return;
        }
        if (window.XMLHttpRequest) {
            xmlhttp=new XMLHttpRequest();
        } else {
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange=function() {
            if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                document.getElementById("citydiv").innerHTML=xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET","cityAjax.php?region="+str,true);
        xmlhttp.send(null);
    }
    

    :-最後になりましたが、リージョンが選択されている場合に新しいjavascript関数を呼び出すには、既存のajax.phpコードを拡張する必要があります:

    ...
    ?><select name="region" id="region" onChange="showCity(this.value);" required><?php   
    
            foreach($select_region->results() as $row) {
    
                $region_id          =   escape($row->regionId);
                $region_name        =   escape($row->regionName);
    
            ?><option value="<?php echo $region_id; ?>" ><?php echo $region_name; ?></option><?php
    
            }
    ?></select><?php 
    ...
    

    これが少しお役に立てば幸いです!




    1. テーブル式の基礎、パート1

    2. MySQLからの読み取りが高速ですか、それともファイルからの読み取りが高速ですか?

    3. refcursorを消費して返すPostgreSQL関数のテスト

    4. Mysql / innodbでデッドロックを検出する方法は?