是否可以使用隐藏输入将关联数组中的值变量传递到另一个页面?


Is it possible to pass a variable of value from associative array, using hidden input, to another page?

我试图获得$w['id']值的mysql行,并通过一个隐藏的输入字段和变量$blog_id传递到另一个页面。下面是第一页的代码:

$query = "SELECT * FROM blog WHERE username = '$username' ORDER BY created_date DESC;";
$result = $mysqli->query($query);
$rows = resultToArray($result);
// var_dump($rows); 
foreach($rows as $r => $w) {
echo "<tr>'n";
    echo "<td>{$w['title']}'n";
    echo "<td>{$w['id']}'n";
echo "<td>{$w['created_date']}</td>'n";
echo "<td>{$w['updated_date']}</td>'n";
echo "<td style='"border:none'">{$w['template']}</td>'n";
$blog_id = $w['id'];
echo "<input type='"hidden'" name='"id'" value='"$blog_id'" />'n";
echo "<td style='"border:none'"><button type='"submit'" name='"view'">View</button></td>'n";
echo "<td style='"border:none'"><button type='"submit'" name='"edit'">Edit</button></td>'n";
echo "<td style='"border:none'"><button type='"submit'" name='"delete'"><font color='"red'">Delete</font></button></td>";
echo "</tr>'n";
}
?>

在我的html表的值回声正确,但当我试图抓住$w['id']值,并通过它使用,说,编辑按钮到下一页的值总是最低的id值在mysql表。
第二页中关键部分的代码为:

sec_session_start();
$username = $_SESSION['username'];
// $blog_id = $_SESSION['blog_id'];
if(isset ($_POST['edit'])) {
    $blog_id = $_POST['id'];
    $result = $mysqli->query("SELECT * FROM blog WHERE id = '$blog_id'");
    if($result->num_rows > 0) { 
        $rows = resultToArray($result);
        foreach($rows as $r => $w) { 
        ?>
        <body id="blog_editor">
<?php var_dump($_POST); ?>

var_dump($_POST)的值总是["id"]=>string(2)"43",而第一页上的foreach循环产生许多不同的id。有人知道我做错了什么吗或者有其他方法可以做同样的事情吗?

您使用一个foreach并返回多个不同的id

我没有看到任何SUBMIT按钮或<form>标签。

你能做的是,在foreach循环中,创建一个带有自己按钮的表单:

<?php
    foreach($rows as $r => $w) {
       echo '<form action="page.php" ...>
       echo ....
       echo '<input type="submit">
    }
?>

或者,如果在一个表单中有多个结果,则必须在每次循环循环时更改元素的name(稍后将值赋给' $_POST['id'])。

修改这一行:

echo "<input type='"hidden'" name='"id'" value='"$blog_id'" />'n";

1) to this:

echo "<input type='hidden' name='id".$blog_id."' value='$blog_id' />'n";

然后当你调用$_POST时你会得到$_POST['idXX']其中XX = ID的编号

2)或TO this创建一个包含所有id的数组:

echo "<input type='hidden' name='id[]' value='$blog_id' />'n";

,然后$_POST['id']将是一个数组