Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Ich brauche Hilfe, um dieses 3-stufige dynamische Dropdown-Menü fertigzustellen

Dann verstehe ich dein Problem nicht ganz? Sie fragen sich im Grunde, wie Sie genau das, was Sie jetzt für die Regionen tun, noch einmal für die Städte tun sollen?

Wie das Erstellen einer 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        
    }

Es tut mir leid, aber Ihre Frage ist nicht wirklich sinnvoll...

Aktualisierung:

Ah, ich glaube ich verstehe dein Problem. Sie verstehen nicht, wie Sie die generierte Regionsauswahl einen Städteabschnitt laden lassen können.

Ok, du könntest es so machen:

  • Wie weiter oben erwähnt, müssten Sie zunächst eine neue ajax.php für die Logik zum Abrufen der Städte erstellen. Es wäre schöner, alles von einer Datei aus zu handhaben, aber um die Dinge einfach zu halten, verwenden wir einfach eine zweite PHP-Datei.

  • Sie müssen auch Ihre Basis-HTML-Datei erweitern und einen Platzhalter für die Städte hinzufügen:

    ...Region--Staat auswählen--

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

    ...

  • Sie müssen auch eine Javascript-Funktion hinzufügen, um diesen neuen Platzhalter zu füllen:

:

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

:- Zu guter Letzt müssen Sie Ihren bestehenden ajax.php-Code erweitern, um die neue Javascript-Funktion aufzurufen, wenn eine Region ausgewählt ist:

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

Hoffe, das hilft ein bisschen!