2017-10-05 2 views
-4

Ich habe eine HTML-Auswahl, die mit Daten aus einer Abfrage mit einer foreach-Schleife gefüllt ist. Der Standardwert ist leer. Wenn die Seite geladen wird, wird eine ungefilterte Abfrage angezeigt. Es sieht ungefähr so ​​ausSo zeigen Sie ausgewählte Option Wert nach dem Senden

$client = $wpdb->get_results("SELECT string FROM `file` WHERE 
`code` = 001"); 

echo 'Filter by client: '; 
    echo '<select name="client_list"><option value=""></option>'; 
    foreach ($client as $key => $row) { 
    $value = $row->string; 
    echo 
    '<option value='.$value.'>' 
    .$value. '</option>'; 
    } 
    $client = $_GET['client_list']; 
    echo '</select>'; 

Es dient als ein Filter, um Daten basierend auf dem ausgewählten Optionswert anzuzeigen. Die Tabelle, die es filtert sieht so etwas wie diese

|client | file    | 
    |------ |-------------------| 
    |client1 | file00000   | 
    |client2 | file00002   | 

Nun, wenn ich die gefilterten Abfrageergebnisse getroffen einreichen und sehen, die richtig sind, ich sehe auch den Standardoptionswert anstelle den man die Daten in dem HTML-Code ausgewählt filtern wählen. Wie kann ich this beheben?

+5

hast du nicht schon (Art) dies bereits gebucht? https://Stackoverflow.com/q/46582289/1415724 und akzeptierte eine Antwort. –

+0

Es ist nicht die gleiche Frage. Es hängt mit dem gleichen Problem zusammen, aber es ist eine andere Frage. – R1ddler

+0

_Es ist nicht die gleiche Frage_ Es ist fast 100% die gleiche Frage –

Antwort

3

Behalten Sie den Wert von Ihrem $ _POST var und dann das ausgewählte Attribut hinzufügen zu halten und haben setzen Sie ihn auf diesen ausgewählten Wert:

echo 'Filter by client: '; 
    echo '<select name="client_list"><option value=""></option>'; 
    foreach ($client as $key => $row) { 
    $value = $row->string; 
    if($_GET['client_list'] == $value){ 
     echo '<option value='.$value.' selected>'.$value. '</option>'; 
    }else{ 
     echo '<option value='.$value.'>'.$value. '</option>'; 
    } 
    $client = $_GET['client_list']; 
    echo '</select>'; 
+0

Ich benutze $ _GET Anfrage nicht $ _POST. – R1ddler

+0

Dann ändern Sie $ _POST zu $ ​​_GET, sollte einfach sein. – Adam

Verwandte Themen