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

2 pole pro automatické doplňování/návrhy pomocí jQuery nebo Ajax s druhým polem na základě prvního výběru s více položkami

Zde je velmi jednoduchý postup. Ukážu jen hlavní kostru. Přidání flash-masa bude na vaší straně.

Předpokládejme, že máme dva <select> v ajax.php takhle:

   <select id="parent">
        <option value="1">value1</option>
        <option value="2">value2</option>
        <option value="3">value3</option>
        <option value="4">value4</option>
    </select>

    <select id="child">

    </select>

Takže co potřebujeme? Musíme vyplnit 2. <select> na události jeho výběru.

Zde přichází javascriptová část (ajax.php)

<script type="text/javascript">
            $(function(){                    
                $('#parent').change(function(){ //on change event
                var parentVal = $('#parent').val(); //<----- get the value from the parent select
                $.ajax({
                    url     : 'process.php', //the url you are sending datas to which will again send the result
                    type    : 'GET', //type of request, GET or POST
                    data    : { parentValue: parentVal}, //Data you are sending
                    success : function(data){$('#child').html(data)}, // On success, it will populate the 2nd select
                    error   : function(){alert('an error has occured')} //error message
                })
            })

            })
    </script>

Tím se požadavek odešle na process.php

Nyní přichází process.php

Zde potřebujeme data k naplnění 2. <select>

Co je nyní uvnitř <select> ?

<option value="someValue">someText</option>

Musíte vypsat něco takového:

    <option value="11">value11</option>
    <option value="12">value12</option>
    <option value="13">value13</option>
    <option value="14">value14</option>

Hodnota a text uvnitř vyplní vaše potřeby.

Jak to bude pocházet z databáze:

  • Hodnotu výběru rodiče můžete získat v process.php s $_GET['parentValue']
  • S touto hodnotou zadejte dotaz do databáze
  • Potom z výsledku vráceného z databáze použijte smyčku while , foreach nebo for (v závislosti na způsobu, jakým jej získáváte), vytvořte<option value="someValue">someText</option> .
  • jste hotovi!

Pro vícenásobný výběr

abyste si život trochu usnadnili, můžete použít vybraný vícenásobný výběr

Rada

mysql_* je zastaralá. místo toho použijte CHOP. Zde je odkaz na tutoriál




  1. 9.6 Turnaj o nejděsivější patch

  2. Jak zobrazit výsledek/výstup rekurzoru v Oracle SQL Developer?

  3. Tipy a triky pro implementaci řízení přístupu k databázi na základě rolí pro MariaDB

  4. Jak vytvořit omezení CHECK v SQL Server (příklady T-SQL)