我有这个简单的代码块,可以将表格打印到屏幕上。这个表有三列和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>";
?>
答案 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;
}