|
автор: chip (03.11.2004 в 05:59) |
|
| можно ли сделать так при выборе одного варианта из списка открывалась одна страница а при выборе другого другая? | |
|
|
|
|
|
|
|
для: chip
(03.11.2004 в 05:59)
| | можно. это называется combobox.
<form name="doublecombo">
<p><select name="example" size="1" onChange="redirect(this.options.selectedIndex)">
<option>Technology Sites</option>
<option>News Sites</option>
<option>Search Engines</option>
</select>
<select name="stage2" size="1">
<option value="http://wsabstract.com">Website Abstraction</option>
<option value="http://www.news.com">News.com</option>
<option value="http://www.wired.com">Wired News</option>
</select>
<input type="button" name="test" value="Go!"
onClick="go()">
</p>
<script>
<!--
var groups=document.doublecombo.example.options.length
var group=new Array(groups)
for (i=0; i<groups; i++)
group[i]=new Array()
group[0][0]=new Option("Website Abstraction","http://wsabstract.com")
group[0][1]=new Option("News.com","http://www.news.com")
group[0][2]=new Option("Wired News","http://www.wired.com")
group[1][0]=new Option("CNN","http://www.cnn.com")
group[1][1]=new Option("ABC News","http://www.abcnews.com")
group[2][0]=new Option("Hotbot","http://www.hotbot.com")
group[2][1]=new Option("Infoseek","http://www.infoseek.com")
group[2][2]=new Option("Excite","http://www.excite.com")
group[2][3]=new Option("Lycos","http://www.lycos.com")
var temp=document.doublecombo.stage2
function redirect(x){
for (m=temp.options.length-1;m>0;m--)
temp.options[m]=null
for (i=0;i<group[x].length;i++){
temp.options[i]=new Option(group[x][i].text,group[x][i].value)
}
temp.options[0].selected=true
}
function go(){
location=temp.options[temp.selectedIndex].value
}
//-->
</script>
|
вставляйте свои значения и вперед. у меня подобные формы заполняются динамически,
из базы. и три уровня. | |
|
|
|
|
|
|
|
для: chip
(03.11.2004 в 05:59)
| | Чтобы по выбору из списка открывались страницы?
Вот так:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title></title>
<script language='JavaScript1.1' type='text/javascript'>
<!--
function send(id)
{
switch (id){
case "1" :
openpage('http://www.softtime.ru/');
break;
case "2" :
openpage('http://www.river.ru/');
break;
case "3" :
openpage('http://www.sat.ru/');
break;
}
}
function openpage(url)
{
window.open(url, '', '');
}
-->
</script>
</head>
<body>
<form name=frm action="#" method="post">
<select name="pages" onchange="send(frm.pages.value)">
<option value="1">Книги</option>
<option value="2">Кассеты</option>
<option value="3">Игрушки</option>
</select>
</form>
</body>
</html>
|
| |
|
|
|
|
автор: chip (04.11.2004 в 02:03) |
|
|
для: glsv (Дизайнер)
(03.11.2004 в 10:33)
| | а без java можно? обойтись PHP
Можно конечно воспользоваться switch и в одном файле лепить все ...
но ... читать просто менее удобно | |
|
|
|
|
|
|
|
для: chip
(04.11.2004 в 02:03)
| | Обойтись только PHP нельзя и вот почему. PHP выполняется только сервере и знать ничего не знает о том, что происходит в браузере. Есть там список, нет его... что там выбрано - PHP это неизвестно... До тех пор пока не будет сделано ображение к серверу и не будет передана туда эта информация.
А обращение к серверу по событию "выбора из списка" возможно только языками, работающими на клиенте, в частности, JavaScript-ом. | |
|
|
|
|
|
|
|
для: chip
(04.11.2004 в 02:03)
| | Извините, но не видеть различий в JavaScript и РНР это просто что-то...
[поправлено модератором] | |
|
|
|
|
автор: chip (05.11.2004 в 01:46) |
|
|
для: Hidden Demon
(04.11.2004 в 21:32)
| | Различия я вижу!
И есть вроде решение
оператором if выбирается нужный вариант и ... иполняется htm код переход на другую страницу через интервал времени (можно время 0 поставить)
но я бы хотел узнать если более элегантное решение? | |
|
|
|
|
|
|
|
для: chip
(05.11.2004 в 01:46)
| | Это вы делаете в коде PHP?
Тогда мы с Вами просто не поняли друг друга... Когда Вы спрашиваете про "выбор из списка", то понимается, что это список <select>. А раза так, то дело происходит на клиенте и здесь кроме JavaScript ничего работать не будет. Поэтому и варианты Вам предлагались исключительно на JavaScript.
В таких ситуация, идеально было бы приводить код - это помогло бы избежать неоднозначностей.
>иполняется htm код переход на другую страницу через интервал времени (можно время 0 поставить)
но я бы хотел узнать если более элегантное решение?
Вот такой код?
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=art.php?id_article=$id_article'>
</HEAD></HTML>";
|
Не знаю, есть ли более элегантное решение, но мы пользуемся тем же :) | |
|
|
|
|
автор: chip (06.11.2004 в 00:18) |
|
|
для: glsv (Дизайнер)
(05.11.2004 в 11:44)
| | ну после после выбора <select> нажимается кнопка
и рабочему скрипту посылается переменные ...
Вот такой код?
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=art.php?id_article=$id_article'>
</HEAD></HTML>";
да такой код ...
видимо "труба" :( | |
|
|
|
|
|
|
|
для: chip
(06.11.2004 в 00:18)
| | если параметры надо передавать после нажатия на кнопку (что имеет вполне определенные последствия - управление передается файлу, указанному в action формы), то почему вы не хотите сделать скрытые поля, заполнив их нужными параметрами (method=post) или указать параметры в URL (action=xxx.pnp?id=1)? | |
|
|
|
|
автор: chip (07.11.2004 в 22:34) |
|
|
для: elenaki
(07.11.2004 в 12:49)
| | Просто в одном файле который указан в action нужно будет разбирать "то что выбрано" и из него переходить в разные файлы только .
Можно конечно и не делать разделение на передачу нескольким файлам но читаемость кода уменьшается (условия будут далеко находится друг от друга и придется просматривать кучу кода).
так что пока единственный выход использовать
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=art.php?id_article=$id_article'>
</HEAD></HTML>";
или ждать спецификацию HTML 5 :) | |
|
|
|