我正在尝试构建一个非常基本的表来显示查询结果,并允许将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>";
?>
答案 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_connect
,mysqli_select_db
,mysqli_query
等,以及更广泛的功能。我建议您在项目中尽快切换到使用这些功能,因为单独的性能和安全性好处是值得的。
参考文献: