2016-06-28 184 views
1

下面的代碼在這裏是錯誤的嗎?選擇框選項篩選器

我有三個選項選擇框用於顯示數據的不同選擇查詢。我似乎無法得到它的工作。 表單提交了一個提交按鈕,其中包含提交的名稱和值。 我是否需要檢查選擇框名稱?

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()); 
} 

我的形式:

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

查詢是不工作,改變我的表的內容。我使用foreach等從$ results回顯到thr表,這似乎與頁面的默認預查詢視圖正常工作...

+2

你能後有問題的形式?還有什麼不工作?錯誤?空白頁面? – Rasclatt

+1

確切___什麼都行不通____那對你的問題不是非常有幫助的描述 – RiggsFolly

回答

2

在所有條件中將$_POST['value']替換爲$_POST['select']。 您應該使用select標籤的名稱來比較值。

此外,我看到你添加了selected="selected"選擇框中的所有選項。它應該只添加到一個選項。

+0

謝謝你們,真的很有幫助! –

2

您選擇的名稱不是「價值」,而是「選擇」:

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

謝謝,我已經摔跤了很長一段時間了! –