如何在PHP中提交表单后保留选定项目的值?

时间:2013-12-12 12:57:48

标签: php html

我只是在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>

3 个答案:

答案 0 :(得分:2)

通常是这样的。

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

请不要使用mysql_*函数编写新代码,尤其是在学习时。 mysql_*函数正在被弃用,它们将在未来的PHP版本中删除。改为使用mysqli_*或PDO对象。

答案 1 :(得分: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>';

答案 2 :(得分:0)

打印选择选项时,您可以检查值并将所有选项设置为选中,可能是这样的:

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>';
    }
}