不确定但这可能是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中传递表单中剩余的输入文本的值。 这是否与隐藏是从表单外的事件修改?
感谢任何帮助。
答案 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']