在表格中每行添加一个php按钮

时间:2013-04-10 21:20:46

标签: php mysql post button

我正在尝试构建一个非常基本的表来显示查询结果,并允许将ID从一行(通过该行上的按钮选择)发布到另一个php表单以进一步编辑该条目。一个非常基本的待办事项列表。

我已经能够制作一个漂亮的表了但是有点难以理解如何将数组中的TaskID值转换为表单的值。

表格的正上方和下方是?>和

有人能指出我逻辑中的缺陷吗?我尝试过使用中间变量$ tmp,但这没有做任何事情。我用谷歌搜索和搜索,但不知道如何实现这一点。我不是一个很好的java和ajax,我在网上发现的许多其他解决方案都没有成功。

$result = mysql_query("SELECT * FROM Tasks WHERE ISNULL(AssignedTo)") 
or die(mysql_error());  


echo "<table border='1'>";
echo "<tr> <th>ID</th> 
  <th>Name</th> 
  <th>Priority</th> 
  <th>Description</th> 
  <th>Location</th> 
  <th>Location2</th> 
  <th>Update this Entry</th></tr>";

while($row = mysql_fetch_array( $result )) 
{

$tmp=$row['TaskID'];
echo "<tr><td>"; 
echo $row['TaskID'];
echo "<td>"; 
echo $row['TaskName'];
echo "<td>"; 
echo $row['TaskPriority'];
echo "<td>"; 
echo $row['TaskDesc'];
echo "<td>"; 
echo $row['TaskContainer'];
echo "<td>"; 
echo $row['TaskContainerIdentifier'];
echo "<td>"; 
?>

   <form name="form" method="POST" action="form_updatetask.php">
     <input value=$tmp type="hidden" name="search">
     <input type="submit"  value="Update">
   </form>

<?php
}
   echo "</td></tr>";
echo "</table>";
?>

2 个答案:

答案 0 :(得分:1)

你混合了html和php这很好,但在你的html中你使用了一个变量。 这显然必须在<?php ?>标签内。你还需要像这样回应这个值:

<input value="<?php echo $tmp;?>" type="hidden" name="search">

因此您的代码将如下所示:

$result = mysql_query("SELECT * FROM Tasks WHERE ISNULL(AssignedTo)") 
or die(mysql_error());  


echo "<table border='1'>";
echo "<tr> <th>ID</th> 
  <th>Name</th> 
  <th>Priority</th> 
  <th>Description</th> 
  <th>Location</th> 
  <th>Location2</th> 
  <th>Update this Entry</th></tr>";

while($row = mysql_fetch_array( $result )) 
{

$tmp=$row['TaskID'];
echo "<tr><td>"; 
echo $row['TaskID'];
echo "<td>"; 
echo $row['TaskName'];
echo "<td>"; 
echo $row['TaskPriority'];
echo "<td>"; 
echo $row['TaskDesc'];
echo "<td>"; 
echo $row['TaskContainer'];
echo "<td>"; 
echo $row['TaskContainerIdentifier'];
echo "<td>"; 
?>

   <form name="form" method="POST" action="form_updatetask.php">
     <input value="<?php echo $tmp;?>" type="hidden" name="search">
     <input type="submit"  value="Update">
   </form>

<?php
}
   echo "</td></tr>";
echo "</table>";
?>

答案 1 :(得分:0)

PHP是允许您进入和退出解析器并包含未处理原始文本的部分(有时是长部分)的语言之一。除了PHP <?php … ?>块之外的任何内容都被视为纯文本并按原样输出。

你的表格中有这一行:

<input value=$tmp type="hidden" name="search">

这将在渲染的HTML中显示,因为整个行存在于PHP代码解析器的范围之外。要在代码中创建变量输出,您需要将其括在<?php … ?>标记中,并像这样回显值:

<input value=<?php echo $tmp ?> type="hidden" name="search">

如果您使用的是启用了5.4+或short_open_tags的服务器,则可以使用此较短的语法:

<input value=<?=$tmp?> type="hidden" name="search">

此外,最好始终将HTML属性值括在引号中,因此我建议您使用此行来表示完整性:

<input value="<?php echo $tmp ?>" type="hidden" name="search">

作为最后一点,mysql_*函数已被(半)弃用,因此不再推荐使用。 PHP提供了一个更快的库,称为MySQL改进扩展(或MySQLi),它与您正在使用的库大致相似,但使用mysqli_connectmysqli_select_dbmysqli_query等,以及更广泛的功能。我建议您在项目中尽快切换到使用这些功能,因为单独的性能和安全性好处是值得的。

  

参考文献: