0

我正在尝试构建一个非常基本的表来显示查询结果,并允许将 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>";
?>
4

2 回答 2

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>";
?>
于 2013-04-10T21:22:08.087 回答
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等,并且可用的功能范围更大。我建议您在项目中尽快切换到使用这些功能,因为仅性能和安全优势就值得。

参考:

于 2013-04-10T21:33:10.343 回答