php表单不使用隐藏字段

时间:2012-05-02 10:47:30

标签: php html forms

不确定但这可能是php中的一个错误。 这是我的虚拟代码。

<script language="javascript">
function fb_logout() {
document.getElementById("hidden_logout_id").value
alert(document.getElementById("hidden_logout_id").value);
document.getElementById("form_1").submit();
}
</script>

echo "<form id=\"form_1\" action=\"" . $_SERVER['PHP_SELF'] . "\" method=\"post\">";
echo "<input type=\"hidden\" id=\"hidden_logout_id\" name=\"hidden_logout_name\" value=\"1\"/>";
echo "<input type=\"text\" id=\"h_logout2\" name=\"h_logout2\" value=\"1\"/>";    
echo "</form>";
var_dump($_POST);
echo "<span onclick=\"fb_logout();\">Logout</span>";

当通过单击跨度执行帖子时,隐藏的值和表单内的文本不会被发布:var_dump($ _ POST)显示一个空变量。但奇怪的是,如果我从表单中删除隐藏(或者我只是将其放在表单之外),它就可以工作,它会在$ _POST中传递表单中剩余的输入文本的值。 这是否与隐藏是从表单外的事件修改?

感谢任何帮助。

3 个答案:

答案 0 :(得分:2)

此代码可能有所帮助..

<?php
    if(isset($_POST['hidden_logout_name'])) var_dump($_POST);   
?>
<script language="javascript">
function fb_logout() {    
    alert(document.getElementById("hidden_logout_id").value);
    document.getElementById("hidden_logout_id").value = "hidden_logout_value";
    document.getElementById("form_1").submit();
}
</script>

<form id="form_1" action="" method="post">
    <input type="hidden" id="hidden_logout_id" name="hidden_logout_name" value=""/>
    <input type="text" id="h_logout2" name="h_logout2" value="1"/>
</form>
<button onclick="fb_logout();">Logout</button>

答案 1 :(得分:1)

document.getElementById("hidden_logout_id").value

您尚未对此行执行任何操作,无论是为此赋值还是将其值赋值给变量。

var logout_value=document.getElementById("hidden_logout_id");
alert(logout_value.value);
document.getElementById("form_1").submit();

愿这对你有所帮助。

答案 2 :(得分:0)

寻找

hidden_logout_name 

而不是

hidden_logout_id

所以你的价值在

$_POST['hidden_logout_name']