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

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: <select>

Сообщения:  [1-9] 

 
 автор: Olega   (14.10.2008 в 10:04)   письмо автору
 
   для: sim5   (14.10.2008 в 10:01)
 

Большое спасибо, все понятно...

  Ответить  
 
 автор: sim5   (14.10.2008 в 10:01)   письмо автору
 
   для: Olega   (14.10.2008 в 09:56)
 

Смотрите - у вас к этой странице идет запрос из формы, и если он пришел, то у вас РНР обработчик делает пернаправление на какую либо из страниц в зависимости от выбора. Другими словами ваш код работает как диспетчер более ничего. Тогда и не нужно ничего больше на этой странице. Другое дело, если эта страница у вас выводила эту форму и она же ее принимала, тогда, если бы пользователь ничего не выбрал из списка, то вы могли бы в этом случае продолжить выполнение некоего сценария.

  Ответить  
 
 автор: Olega   (14.10.2008 в 09:56)   письмо автору
 
   для: sim5   (14.10.2008 в 09:47)
 

<BODY>
тут может быть что-то, если нет POST запроса.
</BODY>
</HTML>


А если на страничке будет еще какойто php код как она будет выгледеть???

  Ответить  
 
 автор: sim5   (14.10.2008 в 09:47)   письмо автору
 
   для: Olega   (14.10.2008 в 09:42)
 

Не надо на странице test.php вывода html кода до header, вы из за этого вывода получаете эту ошибку. Если же кроме этой проверки на странице должен быть обработан и другой РНР код, то весь вывод в браузер должен быть после header происходить. То есть так:

<?php
$a
="link1.html";
$b="link2.html";
if (
$_POST['list']=="1")
{
header("Location: $a");}
else
{
header("location: $b");}
?>
<HTML>
<HEAD>
<TITLE>Selection componet</TITLE>
</HEAD>
<BODY>
тут может быть что-то, если нет POST запроса. Но в этом случае эта страница
должна еще кем-то вызываться, иначе в этом HTML коде нет никакого смысла.
</BODY>
</HTML>

  Ответить  
 
 автор: Olega   (14.10.2008 в 09:42)   письмо автору
 
   для: Николай2357   (14.10.2008 в 09:26)
 

Я исправил скрипт, и получаю такую ошибку:
Warning: Cannot modify header information - headers already sent by (output started at /usr/local/apache/data/htdocs/stat/test.php:6) in /usr/local/apache/data/htdocs/stat/test.php on line 10

<HTML>
<HEAD>
<TITLE>Selection componet</TITLE>
</HEAD>
<BODY>
<?PHP
$a="link1.html";
$b="link2.html";
if ($_POST['list']=="1")
{header("Location: $a");}
else
{header("location: $b");}
?>
</BODY>
</HTML>

Всё верно???

  Ответить  
 
 автор: Николай2357   (14.10.2008 в 09:29)   письмо автору
 
   для: sim5   (14.10.2008 в 09:23)
 

Дубль, прошу пардона...

  Ответить  
 
 автор: Николай2357   (14.10.2008 в 09:26)   письмо автору
 
   для: Olega   (14.10.2008 в 09:00)
 

Если нужны такие сложности, то нужно вместо echo писать хидер. Вот так:
<?
if ($_POST['list']=="1")
{
header("Location: $a");}
Только это все ни к чему, можно сразу на JS сделать, если у Вас другие данные из формы не обрабатываются.

  Ответить  
 
 автор: sim5   (14.10.2008 в 09:23)   письмо автору
 
   для: Olega   (14.10.2008 в 09:00)
 

Для этого измените код на странице test.php на такой:
<?php
if ($_POST['list']==1)
header("location: link1.html");
else 
header("location: link1.htm2");
?>

Только ваш список должен иметь какой-то уже выбор по умолчанию, либо первый опешен без значения и с текстом "Выберите...", например.

  Ответить  
 
 автор: Olega   (14.10.2008 в 09:00)   письмо автору
 
 

Добрый день!
Я хотел бы спросить, как можно организовать переход по ссылкам через <select>, т.е пример:
У меня на сервере есть две странички test.html и test.php.Эти странички находяться в одной директории:
/usr/local/apache/data/htdocs/stat
Страница test.html:
<HTML>
<HEAD>
<TITLE>Selection componet</TITLE>
</HEAD>
<BODY>
<FORM action="test.php" method="post">
<SELECT size="1" name="list">
<OPTION value="1">link1</option>
<OPTION value="2">link2</option>
</SELECT>
<INPUT TYPE="submit" value="send">
</FORM>
</BODY>
</HTML>
Страница test.php
<HTML>
<HEAD>
<TITLE>Selection componet</TITLE>
</HEAD>
<BODY>
<?PHP
$a='link1.html';
$b='link2.html';
if ($_POST['list']=="1")
{echo "$a";}
else
{echo "$b";}
?>
</BODY>
</HTML>
При выборе из списка link1 я получаю надпись link1, а при выборе link2 я получаю надпись link2, а я хочу чтобы при выборе варианта происходило перемещение по страничкам link1.html, link2.html.
Подскажите пожалуйста, что я делаю не так???

  Ответить  

Сообщения:  [1-9] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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