#1 20.03.08 17:22
javascript, помогите доработать
Вот этот код позволяет перемещаться на задаваемые страницы посредством выбора какого-либо пункта из выпадающего меню:
нужно как-то изменить его так, чтобы при выборе какого-либо <option> мы не перемещались бы на страницу с конкретным адресом, а оставались на той, на которой находимся (с не зафиксированным адресом), но при этом через ? передавался бы некий параметр.
этот код по замыслу является частью скрипта "header.php" - т.е. он не выполняется сам по себе, а инклудится множеством других скриптов, таким образом конкретный адрес ссылок неуместен.
а предназначен код (по замыслу) для передачи запрашиваемым скриптам переменной с выбранным юзером языком (англ, рус или френч).
помогите пожалуйста.
Исправлено grozzzzza (21.03.08 11:43)
Offline
#3 20.03.08 18:03
Re: javascript, помогите доработать
Остап, прям...
grozzzzza, убири событие onchange у select, добавь кнопку :
Код: html:
<input type="button"
value="Change"
onclick="top.location.href='header.php?val='+this.form.navSelect.options[this.form.navSelect.selectedIndex].value">
можно канешь это дело и в onChange сразу орабатывать...
Исправлено Jaguar (20.03.08 18:04)
Offline
#6 20.03.08 19:55
Re: javascript, помогите доработать
Jaguar, что-то не работает.
Код: html:
<table border="0" width="250" id="table1"> <tr> <td width="150" align="left"><b>Select language:</b></td> <td width="100" align="justify"> <select class="input" name='lang' ONCHANGE="top.location.href = 'header.php? lang='+this.form.navSelect.options [this.form.navSelect.selectedIndex].value"> <option value="index.php?lang=rus" <?php if ($lang=="rus") echo "selected"; ?> >Russian <option value="index.php?lang=eng" <?php if ($lang=="eng") echo "selected"; ?> >English </select></td> </tr> </table>
может что с синтаксисом не так? я в яваскрипте вообще слабоват. а вообще задумка правильная, думаю. сразу не оценил)
Исправлено grozzzzza (21.03.08 11:42)
Offline
#8 20.03.08 21:07
Re: javascript, помогите доработать
или я тупой, или у тебя получается header.php?lang=index.php?lang=rus
%)
Offline
#9 20.03.08 22:07
Re: javascript, помогите доработать
wixus,
Код::
<option value="index.php?lang=rus" <?php if ($lang=="rus") echo "selected"; ?> >Russian <option value="index.php?lang=eng" <?php if ($lang=="eng") echo "selected
нужно заменить на
Код::
<option value="rus" <?php if ($lang=="rus") echo "selected"; ?> >Russian <option value="eng" <?php if ($lang=="eng") echo "selected"; ?> >English
Offline
#10 20.03.08 22:11
Re: javascript, помогите доработать
Jaguar написал(а):
через php вставляй имя текущего скрипта...
можешь поподробней объяснить как? не могу допетрить что-то...
можно конечно в исходном файле объявлять переменную с именем этого файла, которая потом будет обрабатываться инклудящимся скриптом.
но учитывая то, что исходных файлов будет много, как-то это нерационально.
короче, нужна функция, возвращающая в инклудящийся скрипт имя файла, вызывающего его. наверняка должна быть такая.
Offline
#11 21.03.08 00:54
#12 21.03.08 01:19
#13 21.03.08 09:16
Re: javascript, помогите доработать
Maq, подумаешь) валидация не обязательный аттрибут
Offline
#14 21.03.08 11:13
Re: javascript, помогите доработать
Jaguar, не понял что означает твое сообщение, но на русфорумз подсказали решение.
Код: javascript:
ONCHANGE="top.location.href =
'index.php?lang='+this.options[this.selectedIndex].value
заменить на
Код: javascript:
ONCHANGE="top.location.href =
document.location.pathname +'?lang='+this.options[this.selectedIndex].valueИсправлено grozzzzza (21.03.08 11:13)
Offline
#15 21.03.08 12:26
Re: javascript, помогите доработать
grozzzzza написал(а):
Jaguar, не понял что означает твое сообщение
grozzzzza написал(а):
короче, нужна функция, возвращающая в инклудящийся скрипт имя файла, вызывающего его. наверняка должна быть такая.
Jaguar написал(а):
Код: php:
__FILE__
__FILE__ - это предопределенная константа, которая содержит полный путь и имя текущего файла...
grozzzzza написал(а):
document.location.pathname
- это получение полного урл скрипта средствами JS... чего выбирать - тебе решать... :)
Offline

