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