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