Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Создание дубликата элемента (https://javascript.ru/forum/misc/45522-sozdanie-dublikata-ehlementa.html)

рони 05.03.2014 11:43

Sivik,
:blink:
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<form id="id1">
    <select name="name1">
        <option value="1">вариант 1</option>
        <option value="2">вариант 2</option>
        <option value="3">вариант 3</option>
    </select>
</form>
<script>
   var clone = document.getElementById('id1').cloneNode(true),
   options= clone.getElementsByTagName('select')[0].options;
   options[0].text = "НЕ вариант";
   document.body.appendChild(clone)
</script>
</body>

</html>

Sivik 05.03.2014 11:45

danik.js, нет, не всё) дело в том, что атрибутов может быть намного больше, которые надо клонировать. а, например, name нужен другой.

к примеру для отправки данных по php. если у старого селекта и его клона будет одинаковый нейм, а человек выберет разные опшны, то очевидно, что опшн второго селекта будет игнорирован. отправится лишь значение опшна первого селекта.

Aetae 05.03.2014 11:49

var clone = form.cloneNode(true);
clone.firstElementChild.name = 'new-name';
//или
clone.getElementsByTagName('select')[0].name = 'new-name';
//и т.д.

danik.js 05.03.2014 11:52

Цитата:

Сообщение от Sivik
отправится лишь значение опшна первого селекта

Дык они же в разных формах - как ты их отправишь одновременно?
А если в одной, то почему бы не назвать name="name[]", и на сервак (по крайней мере в PHP и вроде бы в ASP) придет массив значений?

Sivik 05.03.2014 11:56

рони, Aetae,

да да) именно так)

Sivik 05.03.2014 11:58

Цитата:

Сообщение от danik.js (Сообщение 301175)
Дык они же в разных формах - как ты их отправишь одновременно?
А если в одной, то почему бы не назвать name="name[]", и на сервак (по крайней мере в PHP и вроде бы в ASP) придет массив значений?

до этого я, к сожалению, ещё не дошёл(

фактически, JS начал разбирать чуть больше месяца назад. до этого лишь знал операторы if, else. и всё.

danik.js 05.03.2014 12:25

Цитата:

Сообщение от Sivik
фактически, JS начал разбирать

А причем тут JS? Я про PHP говорю. На сервере че у тя?

Sivik 05.03.2014 12:36

Цитата:

Сообщение от danik.js (Сообщение 301183)
А причем тут JS? Я про PHP говорю. На сервере че у тя?


да я вообще чайник)) из php собирал только отправку формы на почтовый адрес. ну и внешний вид окна результата. типа "письмо отправлено".

так что я нулейший нуль и вопроса даже не понял))

хочу сначала довести знания в js до приемлемого уровня, а потом за php браться. а то чтоб не было каши в голове от всего сразу :)

danik.js 05.03.2014 12:46

Да блин. Просто вместо:
$name1 = $_POST['name1'];
$name2 = $_POST['name2'];

напиши:
list($name1, $name2) = $_POST['name'];

А в html вместо name="name1" name="name2" просто пиши name="name[]"

Sivik 05.03.2014 12:52

Цитата:

Сообщение от danik.js (Сообщение 301190)
Да блин. Просто вместо:
$name1 = $_POST['name1'];
$name2 = $_POST['name2'];

напиши:
list($name1, $name2) = $_POST['name'];

А в html вместо name="name1" name="name2" просто пиши name="name[]"


оу, спасибо) сейчас же опробую)


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