0

不确定,但这可能是 php.ini 中的错误。这是我的虚拟代码。

<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 中传递表单中剩余的输入文本的值。这是否与从表单外的事件修改隐藏有关?

任何帮助表示赞赏。

4

3 回答 3

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>
于 2012-05-02T11:01:18.983 回答
1
document.getElementById("hidden_logout_id").value

您还没有对此行执行任何操作,或者将值分配给 this 或将其值分配给变量。

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

愿这对你有所帮助。

于 2012-05-02T11:25:53.907 回答
0

look for the

hidden_logout_name 

instead of

hidden_logout_id

so your value is in the

$_POST['hidden_logout_name']
于 2012-05-02T11:06:15.233 回答