2016-05-07 9 views
0

Jungs Ich habe ein Problem, das ich weiß, dass es möglich ist, aber nicht sicher, wie es geht. Jede Hilfe wird sehr geschätzt.Onchange wählen Sie erhalten Wert und tun Abfrage und dann Ergebnis auf der gleichen Seite anzeigen

Code:

<select id='bldg'> 
    <option value='1'>BLDG1</option> 
    <option value='2'>BLDG2</option> 
</select> 

sobald der Benutzer klicken Sie auf BLGD1 das System eine Anfrage gegeben wird, alle Zimmer bldg1 und zeigt die Abfrage auf einem Auswahleingang zu

Ergebnis sieht wie folgt aus, wenn der Benutzer ausführen Klicken Sie auf BLDG1

<select id='room'> 
    <option value='101'>Room 101 - BLDG1</option> 
    <option value='102'>Room 102 - BLDG1</option> 
</select> 

und wenn der Benutzer auf BLDG2 klickt, werden alle Räume in ROOM angezeigt. Frage: Wie wird die Ergebnisabfrage angezeigt, nachdem Benutzer eine Gebäudenummer von gewählt haben? Weitere Informationen: Codeigniter HMVC; JQUERY

Vielen Dank im Voraus.

+2

Sie haben vergessen, eine Frage zu stellen. Wie auch immer, Sie verwenden jQuery, um einen Änderungsereignishandler an die erste Auswahl anzuhängen. Im Handler würden Sie einen Ajax-Aufruf an eine PHP-Seite machen, die die Datenbanksuche durchführt und die Ergebnisse zurückgibt. Im Ajax-Erfolgsrückruf würden Sie die Optionen des zweiten Auswahlelements aktualisieren. (Ich werde den Code nicht von Grund auf neu schreiben, nicht wenn es viele Beispiele für das gleiche Ding gibt, die bereits online sind.) – nnnnnn

+0

Eigentlich konnte ich das schon mit statischem Inhalt machen und ich benutzte Jquery aber meine Hauptfrage ist dies, wenn der Inhalt in der Datenbank ist. – Dennis

+0

Szenario: Benutzer wählen BLDG1 dann alle Räume, die Flag von BLDG1 hat, wird auf einer Auswahleingabe angezeigt, ohne die Seite zu aktualisieren/neu zu laden. scenario2: Benutzer wählen BLDG2, dann ändert sich die Raumeingabe mit einem neuen Ergebnis aus der Datenbank mit dem Flag BLDG2. – Dennis

Antwort

0

Sie suchen nach dem onchange event. Hier ist eine gute jQuery-freie Lösung:

// Grab the element 
var sel = document.querySelector('#bldg'); 
// Store updated values 
var updatedVals = [ "Room 101 - BLDG1", "Room 102 - BLDG2" ]; 

// Sets an onchange event function 
// Alternative: sel.addEventListener('onchange', fn() { ... }) 
sel.onchange = function() { 
    // this.children returns a DOMNodeList, calling slice converts it to a proper array 
    var options = Array.prototype.slice.call(this.children, 0); 
    // Map/Loop over the array 
    options.map(function(option, i){ 
    // Change innerHTML of each option to the corresponding updated value 
    option.innerHTML = updatedVals[i]; 
    }); 
} 

Check it out auf JSFiddle.

+0

danke für die Antwort. Leider wird der Raum, sobald die ID des Gebäudes geändert wurde, den Inhalt anzeigen oder aktualisieren, je nachdem, was der Benutzer wählt. – Dennis

+0

Klingt, als ob du etwas asynchrone Sachen machst, wenn du sagst "führe eine Abfrage aus" - setze es in das "onchange" -Ereignis und es wird jedes Mal vorkommen, wenn sich die 'select'-Änderungen ändern –

+0

ja, ja. Wenn die Eingabe geändert wird, wird eine andere Abfrage durchgeführt und der Inhalt des Raums aktualisiert – Dennis

Verwandte Themen