Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Вопрос по js+form (переменные) (https://javascript.ru/forum/misc/4769-vopros-po-js-form-peremennye.html)

Georgiy 19.08.2009 11:01

Вопрос по js+form (переменные)
 
Я вообще не знаю js, так что извините если вопрос совсем ламмерский.

Скачал один скринт - форму на js, где есть такая переменная <span id="title"></span> - отображает заголовок формы, в низу есть сама форма, и мне нужно заголовок этой формы передать как переменную типа:

<input name="title" type="hidden" value="title" size=30> вот в этом и проблема. Что писать в value=""? Ясно что не value="<span id='title'></span>" :) Подскажите пожалуйста как преобразовать эту переменную чтобы она встала в value нормально.

twolf 19.08.2009 11:11

http://javascript.ru/tutorial/dom/search#poisk-po-id

Georgiy 19.08.2009 11:19

twolf, спасибо! Мне на это на одном форуме ответили: "DOM Не работает, пока не загрузится все html дерево, поэтому на страницу нужно вешать обработчик, который после загрузки вставляет текст в форму. "
Что сие означает я не понял, но собственно на этом все и закончилось...
я говорю что в js ничего не понимаю, поэтому если не сложно, объясните где именно ошибка. Мне подсказывали примерно так:

<html>

<script type="text/javascript">
window.onload = (function () {

return function () {
document.getElementById('myform').value = document.getElementById('title').innerHTML;
}

})()
</script>

<body>
<span id="title">mytitle</span>
<input type="text" id="myform">

я не понял, почему у <input type="text" id="myform"> нет name="title"?? Ведь именно задача в том, чтобы передать переменную из <span id="title">mytitle</span> чрез <input type="hidden" name="title" id="myform">

Georgiy 19.08.2009 11:20

и соответсвенно пример выше не сработал :(

twolf 19.08.2009 11:37

window.onload = function () {
document.getElementById('myform').value = document.getElementById('title').innerHTML;
}

Так сработает. Если id у Вас уникальные (они должны быть уникальными).
Name не требуется, т.к. мы ищем элемент по id. Можно искать и по name.

Georgiy 19.08.2009 11:58

Цитата:

Сообщение от twolf (Сообщение 27589)
window.onload = function () {
document.getElementById('myform').value = document.getElementById('title').innerHTML;
}

Так сработает. Если id у Вас уникальные (они должны быть уникальными).
Name не требуется, т.к. мы ищем элемент по id. Можно искать и по name.

Далее форма должна отправить эту переменную в php. Сделал всё так как вы написали - id myform уникальная. Прописал в пхп конечно echo $myform; в итоге пусто - не схватилась переменная :(

twolf 19.08.2009 12:05

ну вы не сказали как отправляете данные, если простым сабмит, то да, в input поставьте name и ловите $_POST['title'] или $_GET['title']

Georgiy 19.08.2009 12:32

хм. так странно.. переменная оказывается пустой всё равно. <span id="title"></span> при открытии в обычном html высвечивает переменную, но window.onload = function () {
document.getElementById('myform').value = document.getElementById('title').innerHTML; -здесь она как бы уже пустая. Я попробовал сунуть сюда другую переменную - из <div id="formbox" align="center">, т.е. formbox - переменная заработала при передачи, а которая из <span id="title"></span> не хочет..

twolf 19.08.2009 13:33

document.getElementById('title').innerHTML Вам показывает что между тегами <span id="title"></span>.

Georgiy 19.08.2009 13:39

<span id="title"></span> - получается так что не показывает. При этом при распечатке <span id="title"></span> переменная есть!
Что это может быть?


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