sql >> Databáze >  >> RDS >> Mysql

Potřebuji pomoc s dokončením této 3úrovňové dynamické rozbalovací nabídky

Tak potom fakt nechápu tvůj problém? V podstatě se ptáte, jak přesně udělat to, co nyní děláte pro regiony a znovu pro města?

Jako vytvoření souboru 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        
    }

Je mi líto, ale vaše otázka opravdu nedává smysl...

Aktualizace:

Aha, myslím, že rozumím vašemu problému. Nechápete, jak nechat vygenerovaný výběr regionů načíst část města.

Dobře, můžete to udělat takto:

  • jak je uvedeno výše, nejprve byste museli vytvořit nový ajax.php pro logiku získávání měst. Bylo by hezčí zvládnout vše z jednoho souboru, ale abychom věci zjednodušili, použijeme druhý soubor php.

  • Budete také muset rozšířit svůj základní html soubor a přidat zástupný symbol pro města:

    ...Region--Select State--

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

    ...

  • K naplnění tohoto nového zástupného symbolu budete také muset přidat funkci javascriptu:

:

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

:- V neposlední řadě budete muset rozšířit svůj stávající kód ajax.php, abyste mohli volat novou funkci javascriptu, pokud je vybrána oblast:

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

Doufám, že to trochu pomůže!




  1. Přístup odepřen; pro tuto operaci potřebujete (alespoň jedno) oprávnění SUPER

  2. './mysql/user.MYD' nebyl nalezen (Errcode:2 - Žádný takový soubor nebo adresář)

  3. MySQL a Matlab

  4. Co se stane s ID primárního klíče, když překročí limit?