PHP获得的价值消失了

时间:2012-07-09 16:37:06

标签: php html forms

我有一个html表单,其中填充了我从MySQL数据库查询中获得的值。查询是通过GET发送的id

我将id发送到表单以及一个由锚<a>包围的按钮:

<a href='editRQS.php?id=$row[0]'><button class='edit'>Edit</button></a>

$row[0]由正确的id填充,我确信它正常工作。当我点击按钮时,会发送带有id的网址。然后在另一页收到它:

<?php
$id = -1;

if(isset($_GET['id'])){
    $id = $_GET['id'];
    echo "<label class='exists' id='idRequest'> $id</label>";       
}

if($id != -1 ){
    echo '<form id="findRequest" class="hide" >';
} else {
    echo '<form id="findRequest" class="show" >';
}   
?>

问题是id到达页面 - 然后它就消失了。任何帮助将不胜感激。

修改

该页面似乎重新加载,我不知道为什么,我有一些javascript来管理一些页面功能,唯一可能导致这是一个事件处理程序,当提交另一个表单,但我已经阻止它像这样:

$('anotherForm').on('submit',function(e){
   .
   .
   .
   e.preventDefault();
 }

修改

感谢所有帮助的人,我还没有找到它无效的原因,我尝试禁用javascript和页面停止重新加载所以我想这是另一件让我的页面搞乱的事情

2 个答案:

答案 0 :(得分:0)

检查你的register_globals设置,如果它打开,你将用第一个语句覆盖$ _GET ['id']。

您可以通过将$ id重命名为$ id之外的其他内容来轻松检查。

答案 1 :(得分:0)

页面正在重新加载,因为表单已提交。提交表单preventDefault不够。尝试e.preventDefault(); e.stopPropagation();后者在单击提交按钮时阻止表单提交(仍然会处理点击,并在某些情况下传播到表单,然后提交。

另外,我看到你正在使用jQuery。让你的事件处理程序返回false。 jQuery自动将错误返回的处理程序转换为e.preventDefault() ||e.returnValue = false e.stopPropagation() || e.cancelBubble = true;构造。或者你可以自己编写代码......?