|
|
|
| Добрый день!
Я хотел бы спросить, как можно организовать переход по ссылкам через <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.
Подскажите пожалуйста, что я делаю не так??? | |
|
|
|
|
|
|
|
для: Olega
(14.10.2008 в 09:00)
| | Для этого измените код на странице test.php на такой:
<?php
if ($_POST['list']==1)
header("location: link1.html");
else header("location: link1.htm2");
?>
|
Только ваш список должен иметь какой-то уже выбор по умолчанию, либо первый опешен без значения и с текстом "Выберите...", например. | |
|
|
|
|
|
|
|
для: sim5
(14.10.2008 в 09:23)
| | Дубль, прошу пардона... | |
|
|
|
|
|
|
|
для: Olega
(14.10.2008 в 09:00)
| | Если нужны такие сложности, то нужно вместо echo писать хидер. Вот так:
<?
if ($_POST['list']=="1")
{header("Location: $a");}
| Только это все ни к чему, можно сразу на JS сделать, если у Вас другие данные из формы не обрабатываются. | |
|
|
|
|
|
|
|
для: Николай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>
Всё верно??? | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|
|
|
|
|
для: sim5
(14.10.2008 в 09:47)
| | <BODY>
тут может быть что-то, если нет POST запроса.
</BODY>
</HTML>
А если на страничке будет еще какойто php код как она будет выгледеть??? | |
|
|
|
|
|
|
|
для: Olega
(14.10.2008 в 09:56)
| | Смотрите - у вас к этой странице идет запрос из формы, и если он пришел, то у вас РНР обработчик делает пернаправление на какую либо из страниц в зависимости от выбора. Другими словами ваш код работает как диспетчер более ничего. Тогда и не нужно ничего больше на этой странице. Другое дело, если эта страница у вас выводила эту форму и она же ее принимала, тогда, если бы пользователь ничего не выбрал из списка, то вы могли бы в этом случае продолжить выполнение некоего сценария. | |
|
|
|
|
|
|
|
для: sim5
(14.10.2008 в 10:01)
| | Большое спасибо, все понятно... | |
|
|
|