Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Saya butuh bantuan untuk menyelesaikan tarik-turun dinamis 3 level ini

Saya tidak benar-benar mengerti masalah Anda? Anda pada dasarnya bertanya bagaimana melakukan persis apa yang Anda lakukan sekarang untuk Regions lagi untuk Citys?

Seperti membuat 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        
    }

Maaf, tapi pertanyaan Anda tidak masuk akal...

Pembaruan:

Ah, sepertinya aku mengerti masalahmu. Anda tidak mengerti bagaimana membiarkan pemilihan wilayah yang dihasilkan memuat bagian kota.

Oke, Anda bisa melakukannya seperti ini:

  • seperti yang disebutkan lebih lanjut, pertama-tama Anda harus membuat ajax.php baru untuk logika mengambil kota. Akan lebih baik untuk menangani semua dari satu file, tetapi untuk menjaga semuanya tetap sederhana, kita hanya akan menggunakan file php kedua.

  • Anda juga perlu memperluas file html dasar Anda dan menambahkan placeholder untuk kota:

    ...Wilayah--Pilih Negara--

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

    ...

  • Anda juga perlu menambahkan fungsi javascript untuk mengisi placeholder baru ini:

:

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);
}

:- Last but not least, Anda perlu memperluas kode ajax.php yang ada, untuk memanggil fungsi javascript baru jika suatu wilayah dipilih:

...
?><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 
...

Semoga ini bisa sedikit membantu!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hitung kemunculan dalam tabel PHP echo

  2. mySQL DataSource di Visual Studio 2012

  3. Instal MySQL di Mac

  4. Hitung Berapa Banyak Baris yang Disisipkan Dari Query SQL Terakhir

  5. Dapatkan hasil dari MySQL menggunakan PDO