次のようなjqueryを使用して任意の値を入力する非表示の入力フィールドがあります。
function foo() {
// Obtains the contents of a div within the current page
var $elem = $("#something").html();
// Places the contents of the div into a hidden input field
$("#hidden").val($elem);
}
デバッグでは、elem変数が目的のdiv内からhtmlを取得していることがわかりますが、変数が非表示の入力フィールド値に渡されているかどうかはわかりません。
私はフォームを持っています:
<form method="POST" action="file.php" target="_blank">
<input id="hidden" type="hidden" value=""/>
<input type="submit" onmouseover="foo()" value="Download"/>
</form>
送信時にfile.phpを実行します。
<?php
$html = $_POST["hidden"];
echo $html;
?>
エコー呼び出しは何も返しません、そして私が得るのは空白のページだけです。非表示の入力フィールドの値が変更されないのはなぜか、POST呼び出し中に値が渡されないのはなぜか疑問に思います。
いくつかのさらなる実験により、隠しフィールドの値をランダムな値で設定した場合でも、次のことが明らかになりました。
<input id="hidden" type="hidden" value="Some Value"/>
PHPファイルの実行中にはまだ取得されていません。エコー呼び出しは何も返しません。この非表示の入力フィールドの値を取得する際の問題は何ですか?私はPHPを非常に控えめに扱ってきましたが、過去にはPOST送信時にフォームから値を取得することに問題はありませんでした。