我有一个简单的PHP表单,它显示来自mysql DB的值的输入,并将表单结果发送到另一个页面,该页面根据GET
结果更新db表:
echo "<table>";
echo "<tr>";
echo " <th>Project No</th>
<th>Customer Name</th>
<th>Description</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo "<td><input value=" . $row['project_no'] . "></input></td>";
echo "<td><input value='" . $row['cust_name'] . "'></input></td>";
echo "<td><input value='" . $row['description'] . "'></input></td>";
echo "</tr>";
}
echo "</table>";
echo "<input type='submit' value='Update' />";
echo "</form>";
我在updateprojects.php
时:
echo $_GET['project_no'].$_GET['cust_name'].$_GET['description'];
我没有看到任何价值观。这是为什么?
答案 0 :(得分:4)
在输入字段中,您需要使用“name”属性指定参数名称。
echo "<tr>";
echo "<td><input name=\"project_no\" value=" . $row['project_no'] . "></input></td>";
echo "<td><input name=\"cust_name\" value='" . $row['cust_name'] . "'></input></td>";
echo "<td><input name=\"description\" value='" . $row['description'] . "'></input></td>";
echo "</tr>";
答案 1 :(得分:3)
您忘记了输入名称:
<td><input name='project_no' value=" . $row['project_no'] . "></input></td>
如果你不这样做,php不知道'project_no'是什么意思。每个输入都需要一个名称。
答案 2 :(得分:3)
这是因为您没有为输入标签指定名称:
echo "<td><input name=\"project_no\" value=\"" . $row['project_no'] . \"></input></td>
上述情况应该有效。
答案 3 :(得分:1)
您的输入没有name
属性
答案 4 :(得分:1)
由于您使用循环创建表单输入,这应该适合您(您不能有2个具有相同名称的输入字段),只是从数据库中获取行/记录的ID:
echo "<form method='get' action='updateprojects.php'>";
echo "<table>";
echo "<tr>";
echo " <th>Project No</th>
<th>Customer Name</th>
<th>Description</th>
</tr>";
while($row = mysql_fetch_array($result))
{
echo "<tr>";
echo '<td><input value="' . $row['project_no'] .'" name="form['.$row['id'].']['project_no']"/></td>';
echo '<td><input value="' . $row['cust_name'] .'" name="form['.$row['id'].']['cust_name']"/></td>';
echo '<td><input value="' . $row['description'] .'" name="form['.$row['id'].']['description']"/></td>';
echo "</tr>";
}
echo "</table>";
echo '<input type="submit" name="submit" value="Update" />';
echo "</form>";
if(isset($_GET['submit'])){
foreach($_GET['form'] as $id=>$column){
//update your database where id=$id. This is just testing
echo 'Row '.$id .' =>'. $column['project_no'].'-'.$column['cust_name'].'-'.$column['description'];
}
}
答案 5 :(得分:0)
您需要在输入中添加name=""
属性。
答案 6 :(得分:0)
过去曾帮助我的一点是使用Firebug中的Net选项卡并启用Persist选项以查看浏览器实际发回的内容。在一种情况下,表单有一些字段的重复条目,但第二个条目没有发送正确的值。
答案 7 :(得分:0)
请告知提交类型或隐藏文字。和/或验证您是否从sql查询返回数据。
答案 8 :(得分:0)
在我看来,您需要在HTML输入中使用name =“project_no”。