2013-07-28 177 views
0

我有一個搜索表單,我必須按類別搜索,這是一個下拉列表。有兩個表稱爲成員和類別。在類別表中有兩個字段,分別是ID和名稱(這個名稱字段存儲類似銀行,醫院的名稱..)。members表中有一個名爲Category的字段,其類別的ID與類別表ID值相同(members表中的Category字段是一個外部鍵)。搜索表單與下拉列表

下面是下拉列表中的代碼

<?php if($_GET['level']==2){ ?> 
     Category<select name="Cat" style="display:inline-block"> 
     <option></option> 
     <?php $rs=mysql_query("SELECT ID,Name FROM categories ORDER BY Name"); 
     while($rc=mysql_fetch_array($rs)){ 
      ?> 
      <option value="<?php echo $rc[ID]; ?>" 
      <? echo $_POST['Cat'];?> 
      <?php if($_POST['Cat']==$rc[ID]) 
        echo 'selected'; ?> > 
      <?php echo $rc['Name']; ?></option> 
      <?php } ?> 
      </select> 
     <?php } ?> 

我有幾個palces在這裏我就不在此代碼理解。

  1. 什麼用value="<?php echo $rc[ID]"。它的應該重複一下我剛纔在文本框中輸入正確?但是$ RC [ID]是指將一個數值從1,2,3,4,5但對於下拉列表中的值不顯示數字。爲什麼回顯?
  2. $_POST['Cat']沒有提及數據庫中的任何權利,因爲我沒有這樣的領域。它與<form name="Cat">有關。 $_POST['Cat']如何獲取值應該是整數,以便與$rc[ID]匹配。但它是如何得到整數值的,因爲我輸入的所有數據都是從下拉列表中選擇一個特定的名稱。
  3. 什麼用的「echo selected」?是不是有當一個匹配被發現則該選項標籤變成被用來<option selected>使這個值彈出的列表

回答

0
  1. value=<?php echo $rc[ID]這頂 將此值存儲到您的數據庫表格Ex中時僅用於數據庫。 <option value='1'>Display Value</option>這裏1是存儲到db和 用於顯示值的顯示值是前端。

  2. $_POST['Cat']權,這是不是指任何數據庫值這個 值發生,只有當你提交表單你的情況,你必須 寫#RC【品名】則僅顯示下拉。

  3. 使用echo selected是,當你的條件匹配,那麼 在下拉列表中值只有第一次自動選擇 。

UPDATE:

<option value="<?php echo $rc[ID]; ?>給整數值,因爲你越來越下拉列表中選擇 $rc[ID]的崗位價值,因爲你使用的是像SELECT ID,Name FROM categories ORDER BY Name

來從數據庫中的數據給出了值這可以幫助你

+0

$ _POST ['Cat']如何獲得一個整數值以匹配$ rc [ID]的值。並且沒有表格爲** value = <?php echo $ rc [ID] **指定要存儲的數據。我不認爲它會進入數據庫。 – clarkson