2013-12-12 6 views
0

Я просто строю простую страницу поиска на PHP. Мне нужно знать, как я могу сохранить значение select в раскрывающемся списке при отправке формы. В настоящее время значение сбрасывается до первого индекса.Как сохранить значение выбранного элемента в раскрывающемся списке после отправки формы в PHP?

Могу ли я сделать это через PHP без использования клиентского скрипта?

Вот код:

<?php 

mysql_connect('localhost','root',''); 

mysql_select_db('hotel'); 

$sql = "SELECT * FROM customers"; 

$result = mysql_query($sql); 
?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
</head> 

<body> 


<form method="get"> 

<select name="field" id="field"> 

<?php 

/*if($field == 'Active') 
'selected="selected"'; 
*/ 

while($rows = mysql_fetch_array($result)) 
    echo '<option>'.$rows['customer_id'].'</option><br>'; 
?> 


</select> 


<?php 



if (isset($_GET['Search']) && $_GET['action']=='search') 
{ 




    $sql="SELECT * FROM customers WHERE customer_id=".$_GET['field']; 

    $result = mysql_query($sql); 
    $row = mysql_fetch_assoc($result); 
    echo '<br>Customer Name: '.$row['customer_name'].'<br>'; 
    echo 'Email Address: '.$row['Email_Addr'].'<br>'; 
    echo 'Contact No: '.$row['Contact_No'].'<br>'; 

} 


?> 


<input type="hidden" name="action" value="search" /> 
<br><input type="submit" value="search" name="Search" onclick="" /> 

</form> 

</body> 
</html> 

ответ

2

обычно, как это.

echo '<option'; 
if ($_GET['field'] == $rows['customer_id']) echo " selected"; 
echo '>'.$rows['customer_id'].'</option>'; 

И, пожалуйста, не используйте mysql_* функции для написания нового кода, особенно, когда вы изучаете. Функции mysql_* находятся в процессе устаревания, они будут удалены в будущих версиях PHP. Вместо этого используйте mysqli_* или объекты PDO.

0

Вы можете проверить, если значение приобретают то же самое, чем выберите значение:

while($rows = mysql_fetch_array($result)) 
    echo '<option value="'.$rows['customer_id'].'" '.($rows['customer_id'] == $_GET['field']?'selected="selected"':'').'>'.$rows['customer_id'].'</option><br>'; 
0

При печати выберите параметры, вы можете проверить значение и установить любую опцию mathing в выборе, может быть, как это:

while($rows = mysql_fetch_array($result)){ 
    if(!empty($_GET['field']) && $_GET['field'] == $rows['customer_id']){ 
     echo '<option selected="selected">'.$rows['customer_id'].'</option><br>'; 
    } 
    else { 
     echo '<option>'.$rows['customer_id'].'</option><br>'; 
    } 
} 
Смежные вопросы