Вопрос по 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, спасибо! Мне на это на одном форуме ответили: "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"> |
и соответсвенно пример выше не сработал :(
|
window.onload = function () { document.getElementById('myform').value = document.getElementById('title').innerHTML; } Так сработает. Если id у Вас уникальные (они должны быть уникальными). Name не требуется, т.к. мы ищем элемент по id. Можно искать и по name. |
Цитата:
|
ну вы не сказали как отправляете данные, если простым сабмит, то да, в input поставьте name и ловите $_POST['title'] или $_GET['title']
|
хм. так странно.. переменная оказывается пустой всё равно. <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> не хочет.. |
document.getElementById('title').innerHTML Вам показывает что между тегами <span id="title"></span>.
|
<span id="title"></span> - получается так что не показывает. При этом при распечатке <span id="title"></span> переменная есть!
Что это может быть? |
если вобъю другую переменную в document.getElementById('любая другая переменная').innerHTML - всё отображает, а <span id="title"></span> нет
|
мда... Вы читали мой предыдущий пост?
Если у вас теге ничего не написано, значит и переменная будет пустая. |
Да, так работает. Только дело в том, что между тегами <span id="title"></span> ничего нет, и по идеи скрипта быть ничего не должно. Даже если что-то поставим, он всё равно отобразит другую переменную, которая в ней уже есть.
Как работает скрипт. <a class="but" title="Заказать $good.title" href="#=1" onClick="openbox('$good.title', 1)">Заказать</a> При нажатии на эту ссылку, открывается js окно с формой, где ввеху этого окна название товара $good.title, которая в самой форме передаётся как <span id="title"></span> (внутри тега <span id="title"></span> ничего нет, но передаёт то что было кликнуто по ссылке - $good.title) Стоп.. только стал понимать.. перед спаном есть ещё одна строчка... <div id="box" align="center"> а потом за ним слудует <span id="ordertitle"></span>, т.е. <div id="box" align="center"> <span id="title"></span> - как заголовок ...а потом идёт сама форма.... Походу всё это идёт одной переменной, а в заблуждение ввело то, что <span id="title"></span> имеет свою переменную, хотя просто стоит как какой-то идентификатор и просто привязывает свою строчку к классу в css как заголовок... Блин, а вырвать именно то что записано в ссылке как openbox можно как-то отдельно? Пробовал подставлять эту переменную в ваш пример - ничего не вышло. |
Извините что сразу не сказал, сам не заметил. в Js я 0.
|
я посоветую Вам почитать книги: JavaScript. Библия пользователя и javascript: Подробное руководство (Definitive Guide). Вторая поновее да и написана лучше, но с нулевым знанием js будет сложновато, т.к. расчитана на людей кто уже работал с ним. У Гудмана всё гораздо подробнее, но встречаются моменты, которые в js уже не используеются (document.write).
|
Цитата:
|
Спасибо за совет. Не июмею наглости спрашивать что-то ещё.
|
Подскажите, а может мне кто-нибудь помочь за плату? Скрипт хотелось бы отремонтировать срочно, а на сайте разработчика не нашёл даже форума, и по суппорту молчат. Там делов для разбирающегося на полчаса, если не меньше. А скрипт хороший, только *ука не передаёт жизненно важную переменную.
|
помогу за симфолическую плату
аська в профайле |
Часовой пояс GMT +3, время: 22:42. |