0

確かではありませんが、これは 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 に渡されるのは奇妙です。これは、非表示がフォーム外のイベントから変更されたことと関係がありますか?

どんな助けでも大歓迎です。

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

この行に対して、値をこれに割り当てるか、その値を変数に割り当てるアクションを行っていません。

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

これがあなたを助けますように。

于 2012-05-02T11:25:53.907 に答える
0

を探します

hidden_logout_name 

それ以外の

hidden_logout_id

あなたの価値は

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