Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Potrzebuję pomocy w ukończeniu tego 3-poziomowego dynamicznego menu rozwijanego

Więc naprawdę nie rozumiem twojego problemu? Zasadniczo pytasz, jak zrobić dokładnie to, co teraz robisz dla Regionów dla Miast?

Jak tworzenie 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        
    }

Przepraszam, ale twoje pytanie nie ma sensu...

Aktualizacja:

Ach, myślę, że rozumiem twój problem. Nie rozumiesz, jak pozwolić, aby wygenerowany wybór regionów wczytał sekcję miasta.

Ok, możesz to zrobić tak:

  • jak wspomniano powyżej, najpierw musisz utworzyć nowy ajax.php dla logiki pobierania miast. Byłoby lepiej obsługiwać wszystko z jednego pliku, ale żeby wszystko było proste, użyjemy drugiego pliku php.

  • Będziesz także musiał rozszerzyć swój podstawowy plik html i dodać symbol zastępczy dla miast:

    ...Region--Wybierz stan--

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

    ...

  • Będziesz także musiał dodać funkcję javascript, aby wypełnić ten nowy symbol zastępczy:

:

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, będziesz musiał rozszerzyć swój istniejący kod ajax.php, aby wywołać nową funkcję javascript, jeśli wybrany jest region:

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

Mam nadzieję, że to trochę pomoże!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Solr Indexing My SQL Timestamp lub Date Time pole

  2. Dlaczego otrzymuję Nie można przekazać parametru 2 przez błąd odniesienia, gdy używam bindParam ze stałą wartością?

  3. Zmiana rozmiaru obrazu PHP

  4. jak mogę sprawdzić ograniczenie klucza obcego przy ograniczeniu usuwania za pomocą PHP?

  5. Hibernuj wysyłanie zbędnych zapytań do bazy danych