Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Содержимое блок отправить в форме (https://javascript.ru/forum/events/43267-soderzhimoe-blok-otpravit-v-forme.html)

ninzzo 29.11.2013 10:49

Содержимое блок отправить в форме
 
Всем хай!
есть блок

<div id="block">
<h1>Заголовок</h1>
<p>Содержимое блока</p>
</div>


Как мне отправить все содержвимое данного блока через POST

что бы на другой странице я написал:
<?php
echo $_POST['str']; 
?>

и соответственно получил результат:
<h1>Заголовок</h1>
<p>Содержимое блока</p>



Можно через jquery(даже лучше). Спасибо за помощь!

ksa 29.11.2013 11:29

Цитата:

Сообщение от ninzzo
Как мне отправить все содержвимое данного блока через POST

1. Сделать форму, в ней поле с именем str... Прочитать innerHTML дива с id="block"... Записать в то поле и отправить форму на нужную страницу.

2. Прочитать innerHTML дива с id="block" в переменную str... Отправить ajax-запрос POST вместе с переменной на нужную страницу.

ninzzo 30.11.2013 13:46

2 раза создаю тему и второй раз KSA помогает)

ninzzo 30.11.2013 14:57

Цитата:

1. Сделать форму, в ней поле с именем str.
как в <input type="hidden" id="moya" name="name" value=""> засунуть переменную var STR? что бы потом отправить и принять через PHP


типа так:

$('#moya').val(str); ????

ninzzo 30.11.2013 16:21

Способ через innerhtml не подходит.

Цель: копировать форму, с выбранными селектами, радиобатонами.

У меня есть форма с селект:
<div id="lala">
Бумага<select id="form1_1_5" name="form1_1_5">
<option value="1">80 гр.м2</option>
<option value="2">100 гр.м2</option>
</select>
</div>



Я выбрал 2 вариант. Запускаю функцию копирования:


<div id="new"></div>
<script>
var ara = document.getElementById('lala').innerHTML;
$('#new').html(ara);
</script>



В другом div появляется форма, но мой выбранный селект в нем не выбран. Есть какой либо способ скопировать один блок, что бы выбранные селекты сохранялись и во втором блоке ? =(((

lord2kim 30.11.2013 19:02

Цитата:

Сообщение от ninzzo (Сообщение 283671)
Способ через innerhtml не подходит.

Цель: копировать форму, с выбранными селектами, радиобатонами.

У меня есть форма с селект:
<div id="lala">
Бумага<select id="form1_1_5" name="form1_1_5">
<option value="1">80 гр.м2</option>
<option value="2">100 гр.м2</option>
</select>
</div>



Я выбрал 2 вариант. Запускаю функцию копирования:


<div id="new"></div>
<script>
var ara = document.getElementById('lala').innerHTML;
$('#new').html(ara);
</script>



В другом div появляется форма, но мой выбранный селект в нем не выбран. Есть какой либо способ скопировать один блок, что бы выбранные селекты сохранялись и во втором блоке ? =(((

скопируй всю инфу из блока lala в new и пробегись по всем необходимым элементам в старом блоке циклом, соответственно будешь выставлять такие же элементы как и в старой форме...

ninzzo 30.11.2013 19:45

и пробегись по всем необходимым элементам в старом блоке циклом, соответственно будешь выставлять такие же элементы как и в старой форме...


можно пример на 1 селект хотя бы. Ато не понял как проходить циклом.

У меня будет пару сотен полей в форме, поэтому и хочу копировать ее для дальнейшего редактирования. Что бы не копировать каждой поле в базу данных, а потом выводить каждое поле из базы. Это долго и скучно.

lord2kim 30.11.2013 20:54

Цитата:

Сообщение от ninzzo (Сообщение 283696)
и пробегись по всем необходимым элементам в старом блоке циклом, соответственно будешь выставлять такие же элементы как и в старой форме...


можно пример на 1 селект хотя бы. Ато не понял как проходить циклом.

У меня будет пару сотен полей в форме, поэтому и хочу копировать ее для дальнейшего редактирования. Что бы не копировать каждой поле в базу данных, а потом выводить каждое поле из базы. Это долго и скучно.

для копирования элементов можете воспользоваться методом cloneNode

var d = document;
for (i=0; i < d.getElementsByName("j1").length; i++) { // цикл по radio-переключателям
if (d.getElementsByName("j1")[i].checked) { d.getElementsByName("jj1")[i].checked = true; break; }
}


var d = document;
for (i=0; i < d.getElementById("j12").options.length; i++) { // цикл по ниспадающему списку select
if (d.getElementById("j12").options[i].selected) { d.getElementById("j12").options[i].selected = true; break; }
}


при проходе по группе checkbox-переключателей все тоже самое, но нужно учитывать что может быть выбрано несколько таковых в отличии от radio-переключателей...

также учитывайте, что у копий элементов по хорошему нужно сменить id (в обязательном порядке) и name желательно, ибо могут быть проблемы с функциями, обрабатывающие соответствующие элементы только одной формы...


Часовой пояс GMT +3, время: 03:56.