Javascript 在表单提交中发送div值

Javascript 在表单提交中发送div值,javascript,php,html,Javascript,Php,Html,我正在尝试提交一个包含两个不同输入的表单,所有这些都很好。但是,其中一个输入是textarea(某种类型)。我不得不把它改成一个内容可编辑的div,主要是因为我创建了自己的粗体、斜体和下划线按钮,这些按钮在正常的文本区域中不起作用。问题是提交时的表单没有将文本发送到php,我想知道如何在php中获取div的值 这里是“文本区”: 感谢您的帮助问题在于DIV不是表单元素,无法发布。如果您使用一些javascript,您可以用数据填充一个隐藏的输入字段,然后将其作为POST变量接收到服务器端。您可以

我正在尝试提交一个包含两个不同输入的表单,所有这些都很好。但是,其中一个输入是textarea(某种类型)。我不得不把它改成一个内容可编辑的div,主要是因为我创建了自己的粗体、斜体和下划线按钮,这些按钮在正常的文本区域中不起作用。问题是提交时的表单没有将文本发送到php,我想知道如何在php中获取div的值

这里是“文本区”:


感谢您的帮助

问题在于DIV不是表单元素,无法发布。如果您使用一些javascript,您可以用数据填充一个隐藏的输入字段,然后将其作为POST变量接收到服务器端。您可以向表单中添加一个隐藏的输入,并使用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>

你能做的是:

<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>

setInterval(函数(){
document.getElementById(“dash_new_shout_textarea_hidden”).value=document.getElementById(“dash_new_shout_textarea”).innerHTML;
}, 5);

您可以使用jQuery进行此操作

适当的情况是:

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

提交表格时必须完成以下操作:

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

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

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

我建议您遵循其他答案并使用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>

您的PHP保持不变。

我忘了指出这需要jQuery。
<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>
$(function () {
    $("#send").on("click", function () {
        $("#hiddenfield").val($("#dash_new_shout_textarea").text());

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

        $("form#formID").submit();
    });
});
<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>
function prepareDiv() {
    document.getElementById("dash_new_shout_textarea_hidden").value = document.getElementById("dash_new_shout_textarea").innerHTML;
}