如何将输入的id值存储到另一页上的变量?

时间:2019-03-06 14:35:00

标签: javascript php html sql

说我有两页。第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的值?

2 个答案:

答案 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]);

阅读材料

input:hidden

PDO Prepared Statements

答案 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页的信息。