sql >> Database teknologi >  >> RDS >> Mysql

Jeg har brug for hjælp til at afslutte denne dynamiske dropdown på 3 niveauer

Jeg forstår da ikke rigtig dit problem? Du spørger dybest set, hvordan du gør præcis, hvad du gør nu for regionerne igen for byerne?

Som at oprette en 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        
    }

Jeg beklager, men dit spørgsmål giver ikke rigtig mening...

Opdatering:

Ah, jeg tror jeg forstår dit problem. Du forstår ikke, hvordan du lader det genererede områdevalg indlæse en bysektion.

Ok, du kunne gøre det sådan her:

  • som nævnt længere oppe, skal du først oprette en ny ajax.php for logikken i at hente byerne. Det ville være rart at håndtere alt fra én fil, men for at gøre tingene enkle vil vi bare gå med en anden php-fil.

  • Du skal også udvide din basis-html-fil og tilføje en pladsholder for byerne:

    ...Region--Vælg stat--

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

    ...

  • Du skal også tilføje en javascript-funktion for at udfylde denne nye pladsholder:

:

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

:- Sidst, men ikke mindst, skal du udvide din eksisterende ajax.php-kode, for at kalde den nye javascript-funktion, hvis en region er valgt:

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

Håber dette hjælper lidt!




  1. Undertrykk advarselsmeddelelser ved hjælp af mysql inde fra Terminal, men adgangskode skrevet i bash-script

  2. Sådan optimerer du COUNT(*) ydeevne på InnoDB ved at bruge indeks

  3. Hvordan henter man data fra 2 tabeller?

  4. Hvordan vælger man alle poster, der er 10 minutter inden for det aktuelle tidsstempel i MySQL?