从div获得价值。

时间:2012-06-01 19:26:25

标签: php forms html input

有没有办法从表单中的div元素中获取值而不是使用输入?

我知道这是一个愚蠢的问题,但我只是想知道它是否可能。有点像PHP DOM吗?

或者有没有办法在点击提交时将div更改为输入?

谢谢,

6 个答案:

答案 0 :(得分:5)

使用Javascript,您可以在提交表单之前将div的内容放入(隐藏)输入中。

在jQuery中大致看起来像这样:

$('#myForm').submit(function() {
  $('#myHiddenInput').val($('#myDiv').html());
});

编辑:你们为什么要谈论AJAX?在这种情况下不需要使用AJAX!

答案 1 :(得分:3)

这是一个JavaScript解决方案,不带 jQuery

<script>

    function prepareSubmit() {
        var payload = document.getElementById("target").innerHTML;
        document.getElementById("divContents").value = payload;
        return true;
    }​

</script>

标记:

<form name="test">
    <div id="target">Payload</div>
    <input type="hidden" id="divContents" name="divContents" />
    <input type="submit" onclick="return prepareSubmit()" value="submit" />
</form>​

onclick函数在submit事件之前运行。实际上,除非prepareSubmit返回true,否则表单不会提交。它将div内容插入到隐藏输入中。我认为这是最简单的解决方案。确保在表单之前加载脚本。

答案 2 :(得分:2)

PHP代码在服务器端处理,因此主要是不能对客户端DOM进行PHP操作。

使用JavaScript(最简单的imho和jQuery),您可以从DOM中提取信息,并将其作为附加字段包含在表单提交中。

有很多关于SO的问题涉及使用jQuery添加表单提交,例如

Safari / JQUery - Insert and Update Hidden Field On Page

答案 3 :(得分:0)

使用jQuery在div中发布信息。很简单,只需几行代码。

答案 4 :(得分:0)

您可以在javascript文件中使用ajax调用。所有你需要做的就是调用div id,比如这个$(“#yourdiv”)。val(); 这将为您提供div id中的任何值。 如果您提供更具体的示例并显示一些代码,我可能会更具体。 吉姆

答案 5 :(得分:0)

有多种方法可以实现这一目标。

隐藏字段

您可以创建隐藏的输入字段,并在提交

时使用javascript填充这些字段

<强>的Ajax

使用例如jQuery的AJAX库来序列化数据并通过AJAX发布它

样式输入字段,使它们看起来像您正在谈论的div

另一种选择是只使用你习惯的输入字段,并以不再像输入的方式设置它们的样式

如果您需要其中任何一个示例,请告诉我。