Как выполнить код javascript при инклюде странички на php
Есть сайт на php - главная страница index.php (каркас), и в него при выборе из меню инклюдятся другие блоки в файлах php. В одном из блоков есть функция на javascript, привязанная к элементу формы select:
<select size="1" name="_type" id="selectors" onchange="set_select(this.value)"> Суть в том, что при выборе различных значений из этого списка активируются/деактивируются другие элементы формы. Это работает, но надо сделать так, чтобы при загрузке формы также срабатывала функция set_select, чтобы состояние элементов формы выставилось в зависимости от начального значения элемента select (оно берется из базы и может быть различным). Иначе говоря, нужно эмулировать событие onChange элемента select при начальной загрузке. Пробовал так: $(document).ready(function() { $('#selectors').onchange(); });- не работает... И еще - не понятно, куда вставлять этот код. В заголовок index.php нельзя, ведь страничка с формой может и не существовать. В саму форму? До или после функции set_select? |
Попробуйте вставить просто
set_select(<?php echo ваше значение; ?>) на страничке с формой, после функции set_select |
<script type="text/javascript"> function set_select(value) { if ((value == '3') .... } set_select(<?php echo $row['type']; ?>) </script> Не работает |
<script type="text/javascript"> function set_select(value) { if (value == '3') alert(3); } set_select(<?php echo 3; ?>) </script> у меня работает |
а у меня нет, ни так: set_select(<?php echo 3; ?>), ни так: set_select('3'), ни так: set_select(3)
|
Выложите свою функцию set_select.
|
<script type="text/javascript"> function set_select(value) { alert(<?php echo $row['type']; ?>); if ((value == '3') || (value == '2') || (value == '1')) { document.getElementById('el').setAttribute('disabled','disabled'); document.getElementById('tpl').setAttribute('disabled','disabled'); document.getElementById('cw').setAttribute('disabled','disabled'); document.getElementById('hw').setAttribute('disabled','disabled'); document.getElementById('gas').setAttribute('disabled','disabled'); document.getElementById('zbo').setAttribute('disabled','disabled'); } else { document.getElementById('el').removeAttribute('disabled'); document.getElementById('tpl').removeAttribute('disabled'); document.getElementById('cw').removeAttribute('disabled'); document.getElementById('hw').removeAttribute('disabled'); document.getElementById('gas').removeAttribute('disabled'); document.getElementById('zbo').removeAttribute('disabled'); } if ((value == '0') || (value == '1') || (value == '2')) { document.editForm.check_el.disabled = true; document.editForm.check_tpl.disabled = true; document.editForm.check_cw.disabled = true; document.editForm.check_hw.disabled = true; document.editForm.check_gas.disabled = true; document.editForm.check_zbo.disabled = true; } else { document.editForm.check_el.disabled = false; document.editForm.check_tpl.disabled = false; document.editForm.check_cw.disabled = false; document.editForm.check_hw.disabled = false; document.editForm.check_gas.disabled = false; document.editForm.check_zbo.disabled = false; } } set_select(<?php echo $row['type']; ?>) </script> как показывает 4-я строка (выпадает окошко) - функция срабатывает при загрузке странички, но элементы на форме не меняют статус. А если в самом списке выбирать, к которому ф-ция привязана, тогда все ок Пробовал убирать кавычки вокруг цифр (строки 5 и 23) - ничего не изменилось |
Я башкой немного подумал, и переместил вызов функции в самый конец страницы. И оно заработало:)
kostr, большое спасибо за помощь, решение set_select(<?php echo $row['type']; ?>)действительно очень простое и рабочее. |
Часовой пояс GMT +3, время: 03:25. |