2016-06-28 11 views
1

Ist der folgende Code hier falsch?Wählen Sie Box-Option Filter

Ich habe eine Auswahlbox mit drei Optionen für verschiedene Auswahlabfragen für die Anzeige von Daten. Ich kann es nicht zur Arbeit bringen. Das Formular wird mit einem Absenden-Button mit dem Namen und dem Wert von submit eingereicht. Muss ich auch den Namen der Auswahlbox überprüfen?

if(isset($_POST['submit'])) { 
    if($_POST['value']=='all_records') { 
    $sql = "SELECT * 
     FROM contact_list 
     "; 
    } 
    elseif($_POST['value']=='surname_desc') { 
    $sql = "SELECT * 
      FROM contact_list 
      ORDER BY Surname DESC"; 
    } 
    else{ 
    $sql = "SELECT * 
      FROM contact_list 
      ORDER BY FirstName ASC"; 
    } 
$results = mysqli_query($dblink, $sql) or die (mysqli_error()); 
} 

Meine Form:

<form class="filteroption" action="" method="post"> 
      <select class="select" name="select"> 
      <option value ="all_records" selected="selected">All records</option> 
      <option value ="surname_desc" selected="selected">Surname Desc</option> 
      <option value ="firstname_asc" selected="selected">First Name Asc</option> 
      </select> 
      <input class="" type="submit" name="submit" value="submit"> 
      </form> 

Die Abfragen sind nicht funktioniert und den Inhalt meiner Tabelle zu ändern. Ich spreche aus $ Ergebnisse in thr Tabelle mit foreach etc, die mit der Standard-Abfrage vor der Ansicht der Seite zu funktionieren scheint ...

+2

Können Sie das Formular in Frage posten? Und was ist damit nicht funktioniert? Error? Leere Seite? – Rasclatt

+1

Genau ___Was funktioniert nicht___ Das ist keine sehr hilfreiche Beschreibung Ihrer Probleme – RiggsFolly

Antwort

2

Ersetzen $_POST['value'] mit $_POST['select'] in allen Ihren Bedingungen. Sie sollten den Namen des Select-Tags verwenden, um die Werte zu vergleichen.

Auch ich sehe, dass Sie selected="selected" für alle Optionen in der Auswahlbox hinzugefügt. Es sollte nur zu einer Option hinzugefügt werden.

+0

Danke Leute, wirklich hilfreich! –

2

Der Name Ihres select ist nicht "Wert", sondern "wählen":

if(isset($_POST['submit'])) { 
    if($_POST['select']=='all_records') { //<=========== 'select' 
    $sql = "SELECT * 
     FROM contact_list 
     "; 
    } 
    elseif($_POST['select']=='surname_desc') { //<=========== 'select' 
    $sql = "SELECT * 
      FROM contact_list 
      ORDER BY Surname DESC"; 
    } 
    else{ 
    $sql = "SELECT * 
      FROM contact_list 
      ORDER BY FirstName ASC"; 
    } 
$results = mysqli_query($dblink, $sql) or die (mysqli_error()); 
} 
+0

Danke, ich habe das schon eine ganze Weile gewagt! –