您好我有一个奇怪的问题我有以下表格
echo "<td class='contact-delete'>
<form method='post' action='update_record.php'>";
echo "<button type='submit' value='" . $row['ID_PER'] . "' name='recordID' id = 'recordID'>edit</button>";
echo "</form>";
在update_record.php中的我有以下代码
$id2update = $_POST['recordID'];
echo $id2update ;
session_start();
if(!$_SESSION['logged']){
header("refresh:3; url=start_page.php" );}
// above this part of code there is an other form with a submit button
else if(isset($_POST['submit'])){
echo $id2update ;
}
问题是第一个echo输出变量,但第二个echo不输出任何空值。谁能给我一个解释?
修改: 正在调用第二个echo,但值为null!
答案 0 :(得分:1)
你说&#34;在这部分代码之上还有另一个带有提交按钮的表单&#34;。我假设你试图回应第二次提交?在这种情况下,数据永远不会提交。当您提交HTML表单时,仅提交该表单。页面上其他形式的任何输入/按钮/等都不会发送到服务器,因此在PHP代码中不可用。这是按设计。
因此,您的代码应该永远不会到达第二个回声。
(技术上只提交当前表单中具有非空名称的非禁用表单元素)
编辑:
我想我现在理解你的代码中的注释了。您在另一个提交update_record.php的文件中有一个表单在该请求中,您使用提交按钮呈现一个新表单(作为update_record.php的一部分)。该新表单通过提交按钮提交给自己。如果这是正确的,那么重点是来自update_record.php(带有提交按钮的表单)的表单提交是新请求。您在一个请求中设置$id2update
的值,但随后执行新请求,并且未设置该请求。您应该将该值作为隐藏输入包含在update_record.php中呈现的表单中:
<input type="hidden" name="recordID" value="<?php echo $id2update;?>" />
然后,当发出第二个请求时(提交update_record.php表单时),将再次获取该值。
每个请求都必须自行处理 - 服务器不会自动知道哪些请求一起使用(当然还有会话中保存的数据)。