我正在尝试提交一个包含几个不同输入的表单,这些表单都可以正常工作。但是,其中一个输入是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'];
感谢您的帮助
答案 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();
});
});