Mysql
 sql >> база данни >  >> RDS >> Mysql

Имам нужда от помощ за завършване на това динамично падащо меню от 3 нива

Тогава наистина не разбирам проблема ти? По същество питате как да направите точно това, което правите сега за регионите отново за градовете?

Като създаване на 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        
    }

Съжалявам, но въпросът ти всъщност няма смисъл...

Актуализация:

А, мисля, че разбирам проблема ти. Не разбирате как да позволите на генерираната селекция от региони да зареди градска секция.

Добре, можете да го направите по следния начин:

  • както беше споменато по-горе, първо ще трябва да създадете нов ajax.php за логиката на извличане на градовете. Би било по-добре да обработваме всичко от един файл, но за да опростим нещата, просто ще използваме втори php файл.

  • Ще трябва също да разширите основния си html файл и да добавите заместител за градовете:

    ...Регион--Изберете щат--

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

    ...

  • Ще трябва също да добавите функция на javascript, за да попълните този нов заместител:

:

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

:- Не на последно място, ще трябва да разширите съществуващия си ajax.php код, за да извикате новата функция на javascript, ако е избран регион:

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

Надявам се това да помогне малко!




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Върнете клеймо за време с подготвено изявление

  2. Свързване на html форма с php страница според първичния ключ

  3. Предайте стойността на променливата от JS към PHP

  4. Как да използвате GROUP BY за извличане на набор от резултати с приоритет на азбучен ред

  5. Вземете свързаното име на база данни mysql (JDBC)