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

2 Eingabefelder für die automatische Vervollständigung/Vorschläge unter Verwendung von jQuery oder Ajax mit einem zweiten Feld, das auf der ersten Auswahl mit mehreren Elementen basiert

Hier ist ein sehr einfaches Verfahren. Ich werde nur das Hauptskelett zeigen. Das Hinzufügen von Flash-Fleisch liegt bei Ihnen.

Angenommen, wir haben zwei <select> in ajax.php so:

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

Was brauchen wir also? Wir müssen den 2. <select> füllen im Falle seiner Auswahl.

Hier kommt der Javascript-Teil (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>

Dadurch wird die Anfrage an process.php gesendet

Jetzt kommt die process.php

Hier benötigen wir die Daten zum Befüllen des 2. <select>

Was kommt nun in <select> ?

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

Sie müssen etwa Folgendes ausgeben:

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

Wert und der Text darin füllen Sie mit Ihren Bedürfnissen aus.

Wie es aus der Datenbank kommt:

  • Sie können den übergeordneten Auswahlwert in process.php abrufen mit $_GET['parentValue']
  • Fragen Sie mit diesem Wert die Datenbank ab
  • Verwenden Sie dann aus dem von der Datenbank zurückgegebenen Ergebnis eine Schleife while , foreach oder for (je nachdem, wie Sie es abrufen), machen Sie den <option value="someValue">someText</option> .
  • Du bist fertig!

Für Mehrfachauswahl

Um das Leben ein wenig einfacher zu machen, können Sie chosen multiselect verwenden

Ein Rat

mysql_* ist veraltet. Verwenden Sie stattdessen PDO. Hier ist ein Link zu a Anleitung