2013-07-28 2 views
0

У меня есть форма поиска, в которой я должен искать по категории, которая является выпадающим списком. В ней есть две таблицы, называемые членами и категориями. В таблице категорий есть два поля как ID и Name (это поле Имя содержит название категории, например, банк, больница ..). В таблице участников есть поле под названием «Категория», которое имеет идентификатор категории, который совпадает с идентификатором таблицы категорий (поле «Категория» в таблице участников является иностранным ключ).Форма поиска с выпадающим списком

Вот код выпадающего списка

<?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]" .Он должен повторить то, что я просто ввести в текстовое поле справа? Но $ гс [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] это используйте только для базы данных, когда вы представите форму, которую это значение хранится в вашей таблице базы данных. <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 = clarkson