我有一个html表单,它通过$_POST
生成第二个html表单。
第一个表单提交$_POST['id']
,然后会生成另一个表单,提交$ _POST ['fields'],用于更新mysql db
。但是,用于更新mysqli query
的{{1}}依赖于db
和 $_POST['id']
值。
我无法解决如何在未$_POST['fields']
重置的情况下提交$_POST['fields']
,因为$_POST['id']
正是由提交$_POST['fields']
生成的。
我尝试将$_POST['id']
值传递给$_POST
,并且在成功传递值时,$_SESSION
值将在提交$_POST['id']
后始终重置为NULL。这是完整的代码:
$_POST['fields']
答案 0 :(得分:1)
尝试会话变量。在PHP文件的顶部(在任何HTML之前)放置session_start()
,然后设置$_SESSION['id'] = $_POST['id']
,最后使用$_SESSION['id']
访问mysql调用中的存储变量。
会话变量将保持可访问状态,直到用户关闭浏览器窗口(或大约20分钟后,超时时间),并且由于存储在服务器上而不是cookie,因此是安全的。
答案 1 :(得分:0)
生成第二个表单时,将$_POST['id']
传递给它并将其放入hidden
输入中。
答案 2 :(得分:0)
不知道是否是最好的方法,但在这种情况下,我会在第二种形式中添加一个名为ID的额外隐藏输入。
类似的东西:
echo "<input type='hidden' name='id' value='".$_POST['id']."' />";
答案 3 :(得分:0)
您可以在隐藏代码中发送id
参数。
for($column_value = 0; $column_value < 17; $column_value++)
{
if (in_array($column_value, $exclude))
{
continue;
}
$field = mysqli_field_name($querytwo, $column_value);
echo "<form method=\"POST\">" . "$field" . ": <input type=\"text\" name=\"fields\" value=\"$rowtwo[$column_value]\"> <input type=\"hidden\" name=\"id\" value=\"$_POST['id']\"> <input type=\"submit\"></form>";
}