Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как выполнить код javascript при инклюде странички на php (https://javascript.ru/forum/jquery/17638-kak-vypolnit-kod-javascript-pri-inklyude-stranichki-na-php.html)

wfire 27.05.2011 08:57

Как выполнить код 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?

kostr 27.05.2011 13:15

Попробуйте вставить просто
set_select(<?php echo ваше значение; ?>)

на страничке с формой, после функции set_select

wfire 27.05.2011 14:00

<script type="text/javascript">
function set_select(value)
{
	if ((value == '3') ....
}
set_select(<?php echo $row['type']; ?>)
</script>

Не работает

kostr 27.05.2011 14:05

<script type="text/javascript">
function set_select(value)
{
 if (value == '3') 
  alert(3);
}
set_select(<?php echo 3; ?>)
</script>


у меня работает

wfire 27.05.2011 14:15

а у меня нет, ни так: set_select(<?php echo 3; ?>), ни так: set_select('3'), ни так: set_select(3)

kostr 27.05.2011 14:16

Выложите свою функцию set_select.

wfire 27.05.2011 14:26

<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) - ничего не изменилось

wfire 27.05.2011 14:43

Я башкой немного подумал, и переместил вызов функции в самый конец страницы. И оно заработало:)
kostr, большое спасибо за помощь, решение
set_select(<?php echo $row['type']; ?>)
действительно очень простое и рабочее.


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