Отправить значение div на форму отправить

Я пытаюсь представить форму с несколькими различными входами, которые все работают нормально. Однако один из входов – это текстовое поле (вроде). Мне пришлось изменить его на контент, редактируемый div, главным образом потому, что я создал свои собственные жирные, курсивные и подчеркнутые кнопки, которые не будут работать с обычными текстовыми полями. Проблема в том, что форма в submit не отправляет текст на php, и мне было интересно, что я могу сделать, чтобы получить значение div в php.

Вот "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']; 

Спасибо за помощь

Что вы можете сделать, так это:

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

Я предлагаю вам следовать другим ответам и использовать 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 остается прежним.

проблема в том, что 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> 

скрипт

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

Что вы можете сделать, так это использовать jQuery.

ДЕМО ЗДЕСЬ Правильный сценарий:

* Получить значение из div и сохранить его в скрытом поле. *

Это необходимо сделать при отправке формы:

 $(function () { $("#send").on("click", function () { $("#hiddenfield").val($("#dash_new_shout_textarea").text()); alert($("#hiddenfield").val()); $("form#formID").submit(); }); }); поле $(function () { $("#send").on("click", function () { $("#hiddenfield").val($("#dash_new_shout_textarea").text()); alert($("#hiddenfield").val()); $("form#formID").submit(); }); }); поле $(function () { $("#send").on("click", function () { $("#hiddenfield").val($("#dash_new_shout_textarea").text()); alert($("#hiddenfield").val()); $("form#formID").submit(); }); });