php变量没有做任何事情

时间:2014-07-27 09:39:42

标签: php html

您好我有一个奇怪的问题我有以下表格

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!

1 个答案:

答案 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表单时),将再次获取该值。

每个请求都必须自行处理 - 服务器不会自动知道哪些请求一起使用(当然还有会话中保存的数据)。