在表单提交上发送div的值

时间:2014-01-04 01:02:32

标签: javascript php html

我正在尝试提交一个包含几个不同输入的表单,这些表单都可以正常工作。但是,其中一个输入是textarea(有点)。我不得不把它改成一个内容可编辑的div,主要是因为我创建了我自己的粗体,斜体和下划线按钮,这些按钮不适用于普通的textareas。问题是提交表单不是将文本发送到php,我想知道我能做些什么来获取php中div的值。

这是“textarea”:

<div id="dash_new_shout_textarea" name="dash_new_shout_textarea" 
     class="dash_new_shout_textarea" contenteditable="true" 
     placeholder="Write your shout..." name="dash_new_shout_textarea" 
     value="<?php echo isset($_POST['dash_new_shout_textarea']) ?
     $_POST['dash_new_shout_textarea'] : '' ?>"></div>

表单只是一个普通的表单,方法是post。

这是php:

$newShoutTextarea = $_POST['dash_new_shout_textarea'];

感谢您的帮助

5 个答案:

答案 0 :(得分:2)

你可以做的是:

<div id="dash_new_shout_textarea"></div>
<input type="hidden" name="dash_new_shout_textarea" id="dash_new_shout_textarea_hidden" />
<script type="text/javascript">
setInterval(function () {
  document.getElementById("dash_new_shout_textarea_hidden").value = document.getElementById("dash_new_shout_textarea").innerHTML;
}, 5);
</script>

答案 1 :(得分:1)

我建议您按照其他答案使用jQuery,但由于您的问题中没有jQuery标记,我想我应该为您提供一个很好的非jQuery解决方案。

<强> HTML

<form onsubmit="prepareDiv()">
    <div id="dash_new_shout_textarea" class="dash_new_shout_textarea" contenteditable="true" placeholder="Write your shout..." name="dash_new_shout_textarea" value="<?php echo isset($_POST['dash_new_shout_textarea']) ? $_POST['dash_new_shout_textarea'] : '' ?>"></div>
    <input type="hidden" id="dash_new_shout_textarea_hidden" name="dash_new_shout_textarea" />
</form>

<强>的Javascript

function prepareDiv() {
    document.getElementById("dash_new_shout_textarea_hidden").value = document.getElementById("dash_new_shout_textarea").innerHTML;
}

你的PHP保持不变。

答案 2 :(得分:0)

问题是DIV不是表单元素,无法发布。如果您使用一些javascript,您可以使用数据填充隐藏的输入字段,然后将其作为POST变量接收到服务器端

答案 3 :(得分:0)

您可以向表单添加隐藏的输入,并使用jquery

进行更新
<div id="dash_new_shout_textarea" name="dash_new_shout_textarea" 
 class="dash_new_shout_textarea" contenteditable="true" 
 placeholder="Write your shout..." name="dash_new_shout_textarea" 
 value="></div>

<form id="target" method="post" action="destination.php">
  <input id="textarea_hidden" name="textarea_hidden" type="hidden" value="">
  <input type="submit" value="Submit">
</form>

<强>脚本

$("#target").click(function() {
  $("#textarea_hidden").val($("#dash_new_shout_textarea").val());
});

答案 4 :(得分:0)

你能做的就是使用jQuery。

<强> DEMO HERE 适当的情况是:

* 从div获取值并将其保存到隐藏字段中。 *

提交表单时必须这样做:

$(function () {
    $("#send").on("click", function () {
        $("#hiddenfield").val($("#dash_new_shout_textarea").text());

        alert($("#hiddenfield").val());

        $("form#formID").submit();
    });
});