说我有两页。第1页(从数据库下载数据)包含此代码
//download_form
$id=(this variable should get the value of the input in page 2);
$stmt = $pdo->prepare("SELECT * FROM q1 WHERE q1.id ='$id'");
第2页(HTML表单)包含此代码。
<form method="post" action="../download_form.php" >
<input type="submit" name="download" value="download" id="<?php echo
$row["id"]; ?>" class="btn-xs" />
</form>
我应该怎么做,以便当用户单击下载时,download_form.php将获取/发布表单ID的值?
答案 0 :(得分:1)
使用隐藏的输入:
<input type="hidden" name="id" value="<?= $row["id"] ?>" />
然后...
$id = $_POST['id'] ? intval($_POST['id']) : null; // for syntactic sugar see http://php.net/manual/en/migration70.new-features.php#migration70.new-features.null-coalesce-op
此外,如果您直接将值直接传递给它,则准备工作完全没用:
$stmt = $pdo->prepare("SELECT * FROM q1 WHERE q1.id ='$id'");
收件人
$stmt = $pdo->prepare("SELECT * FROM q1 WHERE q1.id = ?");
$stmt->execute([$id]);
阅读材料
答案 1 :(得分:0)
您必须从代码中更改提交按钮代码。您无需在其中指定ID,即
<input type="submit" name="download" value="download" id="<?php echo
$row["id"]; ?>" class="btn-xs" />
在这里您不应该使用id。 id保存在另一个名为“ id”的隐藏字段中。
<form method="post" action="../download_form.php" >
<input type="hidden" name="id" value="<?= $row["id"]; ?>" />
<input type="submit" name="download" value="download" class="btn-xs" />
</form>
现在,当您从第2页提交时(按下载按钮),“ id”将在第1页上显示。您可以使用此行将其提取。
$id = $_POST["id"];
那么您将获得第2页到第1页的信息。