我正在生成一个显示来自数据库的值的表。当显示每个记录的值时,我尝试通过URL发送到下一页的名称字段没有增加,而只是保留为设置为name的初始值。我看不到问题,因为$ name变量不会在窗体外部递增时产生任何问题,但在其内部无法递增。
<?php
require_once "config.php";
$sql = "SELECT * FROM restaurant";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
echo "<table><tr><th>Name</th><th>City</th><th>Link</th></tr>";
while ($row = mysqli_fetch_assoc($result)) {
$name = $row["Name"];
//$link = "<a href='info.php' >$name</a>";
echo "<tr><td>" . $name . "</td><td>" . $row["City"] . "</td><td><form action='info.php?name=$name' method='post'><input type='submit' value='reserve now'></td></tr>";
}
echo "</table>";
} else {
echo "0 results";
}
mysqli_close($conn);
您要将任意文本粘贴到URL中,然后将其作为任意文本粘贴到HTML中。轻轻地说,这就是自找麻烦。
首先,将参数正确粘合到URL:
$name = $row["Name"];
$action = 'info.php?name=' . urlencode($name); // This will represent special URL characters properly
然后,将其正确粘贴到HTML
$actionHtml = htmlentities($action); // This will represent HTML characters properly
$form = "<form action='$actionHtml' method='POST'><input type='submit' value='reserve now'/>"
PS:我注意到您忘了</form>
在桌子前关门了;)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句