-1

我有一个 PHP 页面,我在其中回显所有 HTML。在被告知这是不好的做法之后,我应该写出 HTML 并且只在需要时切换到 PHP,我正在尝试重写我的表单以遵守这一点。

我尝试了以下方法,但是包含我的 SQL 查询结果的 $row 数组没有被正确调用,

<?php while($row = $sth->fetch()){ ?>
<p>
<input type = "hidden" name ="id" value="<?php $row["id"] ?>"/>';
<p>
<input type = "text" name ="firstName" size ="30" value=" <?php $row["firstName"]?>"/>';</p>
<p>
<input type = "text" name ="lastName" size ="30" value="<?php $row["lastName"]?>"/>';
</p>";
<input type="submit" value="Update" />';
<?php } ?>

据我了解,只要开始和结束括号的顺序仍然正确,上面的代码应该可以工作,但它不能。

我究竟做错了什么?

4

2 回答 2

3
<?php while($row = $sth->fetch()){ ?>
<p>
<input type = "hidden" name ="id" value="<?php echo $row["id"]; ?>"/>';
<p>
<input type = "text" name ="firstName" size ="30" value=" <?php echo $row["firstName"]; ?>"/>';</p>
<p>
<input type = "text" name ="lastName" size ="30" value="<?php echo $row["lastName"]; ?>"/>';
</p>";
<input type="submit" value="Update" />';
<?php } ?>

你忘了把echo,没有回声它不会打印任何东西。

您还有另一种选择,即:

<?php while($row = $sth->fetch()){
echo<<<HTML
<p>
<input type = "hidden" name ="id" value="{$row['id']}"/>';
<p>
<input type = "text" name ="firstName" size ="30" value=" {$row['firstName']}"/>';</p>
<p>
<input type = "text" name ="lastName" size ="30" value="{$row['lastName']}"/>';
</p>";
<input type="submit" value="Update" />';
HTML;
} ?>
于 2012-11-25T23:47:56.937 回答
1

你需要使用回声

<input type = "hidden" name ="id" value="<?php echo $row["id"]; ?>"/>

另外,不要忘记为 HTML 转义:

<input type = "hidden" name ="id" value="<?php echo htmlspecialchars($row["id"]); ?>"/>

从 PHP 5.4 开始,short 方法始终可用,即使 short_open_tag 配置关闭:

<input type = "hidden" name ="id" value="<?= htmlspecialchars($row["id"]); ?>"/>
于 2012-11-25T23:48:19.443 回答