Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: JavaScript в начале. хтмл значение в конце. немогу :(
 
 автор: newbies   (06.02.2007 в 19:12)   письмо автору
 
 

Народ, выручайте, а то я что-то совсем туплю: есть некое валуе в конце хтмл-кода,
и некий скрипт, который хочетт знать эту валую - в начале кода - примерно так:

--------------- начало хтмл -------------
всякое бла-бла-бла

<script> ttt = document.getElementById('jjj'); alert(ttt.value); </script>

еще бла-бла-бла

<input id=jjj name=qwe type=hidden value="<=$_POST[Id]>">
-----------конец хтмл----------------------

Эксплорер говорит, что "требуется об'ект"... Где я не прав?
Если скрипт ставлю после инпута, то все работает, но надо ДО!

   
 
 автор: retsoul   (06.02.2007 в 19:36)   письмо автору
 
   для: newbies   (06.02.2007 в 19:12)
 


. . .
<script type="text/javascript">
<!--
function ClkAlr() {
  var ttt = document.getElementById("jjj").value;
  alert(ttt);
  }
// -->
</script>
. . .
<input id="jjj" name="qwe" type="hidden" value="<?echo $_POST['inpID'];?>" />
<input type="button" onclick="ClkAlr()" value="Click Me" />

теоретически - должно работать, если яваскрипт сможет обратится к значению скрытого поля

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

   
 
 автор: newbies   (06.02.2007 в 19:48)   письмо автору
 
   для: retsoul   (06.02.2007 в 19:36)
 

Да не, я по-всякому пробовал.. не в кавычках дело.. :(
И твой вариант попробовал - н епашет.
Скрипт после инпута - все работает. Ттупо Ctrl+X --> Ctrl+V его
перед инпутом - "требуется об'ект" ;(((
Иля так и должно? Но вроде бы гетЭлемент ищет по всему
документу независимо?..

   
 
 автор: Lelik   (06.02.2007 в 19:51)   письмо автору
 
   для: newbies   (06.02.2007 в 19:48)
 


...
<input type="button" onclick="ClkAlr(); return false;" value="Click Me" /> 

   
 
 автор: newbies   (06.02.2007 в 20:12)   письмо автору
 
   для: Lelik   (06.02.2007 в 19:51)
 

Сори, я наверное, неправильно об'яснил. Мне надо не стоко Алерт сделать,
скока забрать значение и на основе его предпринять какие-то действия,
а алерт - это для примера. И вопрос - не "ак сделать", а что "не понимаю"...
гетЕлементБайИд ведь должен проглядывать весь документ, и возвращать
об'ект - так почему он этого не делает?!!!
ЗЫ. Да, ав твоем примере все работает, но надо другое :(

   
 
 автор: retsoul   (06.02.2007 в 20:15)   письмо автору
 
   для: newbies   (06.02.2007 в 20:12)
 

как и куда тебе его забрать надо?

алерт выводит значение этого элемента, оно как раз и хранится в переменной 'ttt'
бери его и работай с ним

---
"ты скажи, ты скажи, чё те надо, чё надо?"(с) :)

   
 
 автор: newbies   (06.02.2007 в 20:28)   письмо автору
 
   для: retsoul   (06.02.2007 в 20:15)
 

=) Короче. значение (валуе) инпута с ид="jjj" играет роль как бы
мегаглобальной (сессионной) переменной, которая передается
"постом" со странички на страничку, и, исходя из ее значения
скрипт, начинающий работать в самом начале странички должен
совершить какие-то действия, присвоить значения чекбоксам и т.п.
Вопрос же крайне прост : почему getElemenById('jjj') не может взять
значение (валуе) инпута после себя по коду, а может только ДО...

   
 
 автор: retsoul   (06.02.2007 в 20:37)   письмо автору
 
   для: newbies   (06.02.2007 в 20:28)
 

дело в том, что яваскрипт предназначен для клиентской стороны, а не для серверной, если необходимо передавать значение от одной странице к другой, тогда это делается методом GET
и название страницы в командной строке браузера приобретает следующий вид:
http://www.softtime.ru/forum/answer.php?id_forum=4&id_theme=123123123&id_post=123123123132
и тут скрипту передаются 3 переменные $id_forum, $id_theme и $id_post
а яваскрипт не предназначен для отслеживания конкретной переменной, ещё для этого не обязательно постоянно передавать эту переменную в скрытом поле, можно сразу вписывать адрес с переменной в ссылку или использовать кукисы или наконец просто хранить переменную в сессии

   
 
 автор: newbies   (06.02.2007 в 20:49)   письмо автору
 
   для: retsoul   (06.02.2007 в 20:37)
 

Ну дык мы, комсомольцы, трудности любим преодолевать.. %)
Нужно непременно постом, и непрепенно Яво-скриптом...
Изврат, конечно, но работает. (на соседних страничках).
Кажется какой-то просвет вырисовывается, сори, что побеспокоил.
Оказалось, что он превосходно работает по событию
(онклик, онлоад, etc.), а вот в конструкции вида <script> ... </script>
какие-то затыки.. Как буд-то включенный в событие он умет
видеть глобалы, а так - нет. Почему так - я не понимаю... Видимо,
надо глубже знать Явоскрип.Если кто сможет доходчиво внести
ясность - плиз..
Всем, кто поучаствовал - спасибо!.. =)

   
 
 автор: RMW   (06.02.2007 в 21:06)   письмо автору
 
   для: newbies   (06.02.2007 в 20:49)
 

Используйте onload

   
 
 автор: victoor   (06.02.2007 в 21:21)   письмо автору
 
   для: newbies   (06.02.2007 в 20:49)
 

>Кажется какой-то просвет вырисовывается, сори, что побеспокоил.
>Оказалось, что он превосходно работает по событию
>(онклик, онлоад, etc.), а вот в конструкции вида <script> ... </script>
>какие-то затыки.. Как буд-то включенный в событие он умет
>видеть глобалы, а так - нет. Почему так - я не понимаю... Видимо,
>надо глубже знать Явоскрип.Если кто сможет доходчиво внести
>ясность - плиз..
Как я понимаю, браузер построчно (побайтово) грузит документ и сразу пытается выполнить (не дожидаясь полной загрузки) поэтому при встречи обращения к какому-либо объекту (не в функции) он сразу пытается выполнить, и, не найдя среди уже загруженного, нужного объекта, ругается...
Надеюсь, понятно объяснил.

   
 
 автор: newbies   (06.02.2007 в 21:41)   письмо автору
 
   для: victoor   (06.02.2007 в 21:21)
 

Эээ.. Именно так? В принципе, да, похоже оно и есть.
Как-то мне казалось, что java-машина должна все скрипты
внутри документа перепарсить/скомпилить.. Но, с другой
стороны, это ж таки скрипт, а не С#. :) Спасибо, буду
теперь и далее придерживаться этой гипотезы.
Вобщем, надо "учить мат-часть"...

   
 
 автор: retsoul   (06.02.2007 в 22:02)   письмо автору
 
   для: newbies   (06.02.2007 в 21:41)
 

javascript имеет отношение к java только общей частью в названии, да си-подобным синтаксисом написания кода

   
 
 автор: 12345   (07.02.2007 в 11:44)   письмо автору
 
   для: newbies   (06.02.2007 в 21:41)
 

Это не гипотеза, а так и есть. Если хотите выполнить скрипт по загрузке всего документа (с картинками), есть событие onload.

(Если нет желания ждать полной загрузки, выполняйте скрипт с периодической проверкой существования объекта:


ww=setInterval("if(document.getElementById('...')){выполнить и отменить интервал,clearInterval(ww);}",300);

   
 
 автор: retsoul   (06.02.2007 в 19:56)   письмо автору
 
   для: newbies   (06.02.2007 в 19:48)
 

попробовал, всё работает, даже без добавления return false;, работает в фф, опере и макстоне

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования