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

HTML+CSS+JavaScript

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

 

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

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

тема: список
 
 автор: chip   (03.11.2004 в 05:59)
 
 

можно ли сделать так при выборе одного варианта из списка открывалась одна страница а при выборе другого другая?

   
 
 автор: elenaki   (03.11.2004 в 10:26)   письмо автору
 
   для: 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>


вставляйте свои значения и вперед. у меня подобные формы заполняются динамически,
из базы. и три уровня.

   
 
 автор: glsv (Дизайнер)   (03.11.2004 в 10:33)   письмо автору
 
   для: 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 и в одном файле лепить все ...
но ... читать просто менее удобно

   
 
 автор: glsv (Дизайнер)   (04.11.2004 в 02:20)   письмо автору
 
   для: chip   (04.11.2004 в 02:03)
 

Обойтись только PHP нельзя и вот почему. PHP выполняется только сервере и знать ничего не знает о том, что происходит в браузере. Есть там список, нет его... что там выбрано - PHP это неизвестно... До тех пор пока не будет сделано ображение к серверу и не будет передана туда эта информация.

А обращение к серверу по событию "выбора из списка" возможно только языками, работающими на клиенте, в частности, JavaScript-ом.

   
 
 автор: Hidden Demon   (04.11.2004 в 21:32)   письмо автору
 
   для: chip   (04.11.2004 в 02:03)
 

Извините, но не видеть различий в JavaScript и РНР это просто что-то...

[поправлено модератором]

   
 
 автор: chip   (05.11.2004 в 01:46)
 
   для: Hidden Demon   (04.11.2004 в 21:32)
 

Различия я вижу!
И есть вроде решение
оператором if выбирается нужный вариант и ... иполняется htm код переход на другую страницу через интервал времени (можно время 0 поставить)
но я бы хотел узнать если более элегантное решение?

   
 
 автор: glsv (Дизайнер)   (05.11.2004 в 11:44)   письмо автору
 
   для: 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>";

да такой код ...
видимо "труба" :(

   
 
 автор: elenaki   (07.11.2004 в 12:49)   письмо автору
 
   для: 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 :)

   
Rambler's Top100
вверх

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