PHP试图将选择下拉列表的值回显到屏幕上

时间:2012-12-06 18:41:18

标签: php select echo

我有这个简单的代码块,可以将表格打印到屏幕上。这个表有三列和id,car(下拉列表有三个选项ford,toyota和gmc)和名称。我要做的是将特定行下拉列表选择的值打印到屏幕上。我的方法不起作用......

<?php    
//////connecting to our sql server
$db_connect=mysql_connect("XXXXXXXXXXXX", "XXXXXXXXX", "XXXXXXXXXXXXX")    
 or die("not logged in");
//////now selecting our database
$db_select=mysql_select_db("XXXXXXXXXXX") or die(mysql_error());
////query
$query = mysql_query("SELECT * FROM car "); 


echo '<form action="drop_down_car_test.php?" method="GET">';
echo '<table border = \"1\">';
echo '<tr><td>id</td><td>car</td><td>name</td>';

while($row=mysql_fetch_array($query)){
echo "<tr><td>";

////in the database 'id' is the primary auto incremented id
echo $row['id'];
echo "</td><td>";

echo "<select name='carDropDown".$row['id']."' >;
<option value=\"1\">ford</option>;
<option value=\"2\">toyota</option>;
<option value=\"3\">gmc</option>;
</select>";

echo $_GET['carDropDown'.$row['id']];

echo "</td><td>";
echo $row['name'];
echo "</td><td>";
}////end while
echo"<table>";

echo '<td bgcolor=#7FFF00><input type="submit" value="Update"></td>';
echo "</form>";
?>

2 个答案:

答案 0 :(得分:1)

这是错误的:

echo "<select name='carDropDown' id='carDropDown'".$row['id']." >;
<option value=\"1\">ford</option>;
<option value=\"2\">toyota</option>;
<option value=\"3\">gmc</option>;
</select>";

echo $_GET['carDropDown'.$row['id']];

您希望通过THIS html回显的值只是:

$_GET['carDropDown']

请记住,将“值”参数指定给超全局的值。在这些变量中不使用id。

但是既然你在循环中使用它,我打赌你想要这样的东西:

echo "<select name='carDropDown".$row['id']."'>;
<option value=\"1\">ford</option>;
<option value=\"2\">toyota</option>;
<option value=\"3\">gmc</option>;
</select>";

echo $_GET['carDropDown'.$row['id']];

但这是另一个问题...... 如果您打算以某种方式在处理中使用它,您将需要知道所有这些id来获取您的值。那么为什么不使用数组?

<select name='carDropDown[]'>

然后你可以像这样循环:

<?php foreach($_GET['carDropDown'] AS $car): ?>

    <?php echo $car; ?><br>

<?php endforeach; ?>

无论哪种方式,这里的东西看上去很腥。您是否打算让汽车表中的每一行都有一个选择框,其中包括福特,丰田或gmc作为选项?或者你是否想要一个包含所有汽车品牌的选择框 - 当更改时 - 用这样的汽车填充你的查询和结果?

答案 1 :(得分:0)

您似乎没有检查是否已单击提交按钮。类似的东西:

if (isset($_GET['submit'])) {
echo value;
}