0

我有一个隐藏的输入字段,我使用 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;
?>

echo 调用什么也不返回,我得到的只是一个空白页。我想知道为什么隐藏输入字段的值没有被更改,或者为什么在 POST 调用期间它没有被传递。

一些进一步的实验表明,即使我将隐藏字段的值设置为一些随机值:

<input id="hidden" type="hidden" value="Some Value"/> 

在PHP文件执行过程中仍然没有获取到。echo 调用不返回任何内容。我获取此隐藏输入字段的值有什么问题?我非常谨慎地使用 PHP,但过去在 POST 提交时从表单获取值没有问题。

4

2 回答 2

5

您需要为输入字段命名才能使用 $_POST 在 php 中访问它

<input id="hidden" name="hidden" type="hidden" value=""/>
于 2013-01-06T23:21:44.817 回答
3

你应该只指出name属性

<form method="POST" action="file.php" target="_blank">
    <input name="hidden" id="hidden" type="hidden" value=""/>
    <input type="submit" onmouseover="foo()" value="Download"/>
</form>
于 2013-01-06T23:21:39.957 回答