форма и action
<FORM NAME=FORM1 ACTION="">
<INPUT TYPE="RADIO" NAME="act" value="1">
<INPUT TYPE="RADIO" NAME="act" value="2">
<INPUT TYPE="RADIO" NAME="act" value="3">
</FORM>
а дальше - если act="1", то action должен стать 1.php, иначе 2.php, иначе 3.php
пытался делать по-разному:
и через Js:
document.forms.form1.action="1.php";
и через php:
Код:
if ($_POST"act"]=="1")
{?>1.php
<?}?>
{?>1.php
<?}?>
прошу еще учесть, что это радио - не единственный элемент этой формы, поэтому, например просто
Код:
header(location:1.php)
или window.open("1.php") не помогут, так как $_POST должен остаться, а передавать его параметры через адрес...
switch ($_POST['act']) {
case "1":
если 1
break;
case "2":
если 2
break;
default:
что то если ничего не подошло
break;
}
проблема в том что это срабатывает при 2 сабмите формы. при первом она как бы формирует этот action, а дальше до обновления страницы она при любом значении radio будет считать экшн таким же...
isset() - проверяет определина ли переменная.
(а вообще объясни все по человечиски че те надо)
Есть у меня радио. в зависимости от значения меняется action.
при загрузке экшн такой:
..action="<? choose() ?>
а
function choose()
{
if ($_POST['1']=="1")
{?>1.php<?}?>
}
после чего страница перегружается без изменений, а вот атрибут action равен 1.php, после чего вне зависимости от значения радио работает естессно 1.php.
фу, вроде теперь понятно пояснил...
Цитата:
Originally posted by gufy
Ну смотри.
Есть у меня радио. в зависимости от значения меняется action.
при загрузке экшн такой:
..action="<? choose() ?>
а
function choose()
{
if ($_POST['1']=="1")
{?>1.php<?}?>
}
после чего страница перегружается без изменений, а вот атрибут action равен 1.php, после чего вне зависимости от значения радио работает естессно 1.php.
фу, вроде теперь понятно пояснил...
Ну смотри.
Есть у меня радио. в зависимости от значения меняется action.
при загрузке экшн такой:
..action="<? choose() ?>
а
function choose()
{
if ($_POST['1']=="1")
{?>1.php<?}?>
}
после чего страница перегружается без изменений, а вот атрибут action равен 1.php, после чего вне зависимости от значения радио работает естессно 1.php.
фу, вроде теперь понятно пояснил...
Тогда я че то не пойму чем мой путь решения тебя не нравится:
Проверяй функцией существование переменной, isset то грузится дефолтовая экшин
А потом свитч, если 1 то то если два то и.т.д
можно еще после загрузки очищать переменную(как это делать я уже тебе говорил)
я подумаю/попробую так что тема пока не закрыта. хотя идея и здравая, но могут быть проблемы, все равно спасибо.
Цитата:
Originally posted by gufy
я подумаю/попробую так что тема пока не закрыта. хотя идея и здравая, но могут быть проблемы, все равно спасибо.
я подумаю/попробую так что тема пока не закрыта. хотя идея и здравая, но могут быть проблемы, все равно спасибо.
На сервере эту проблему решить проще. Передавай все, как есть в ПХП, а уже в нем выбирай, что делать. При этом, правда, придется объединить все три файла в 1. Если такой подход тебе претит, сделай переброску через какой-то общий файл. Например
0.php
Код:
<?php
switch(act){
case 1:
include("1.php");
break;
case 2:
include("2.php");
break;
case 3:
include("3.php");
}
?>
switch(act){
case 1:
include("1.php");
break;
case 2:
include("2.php");
break;
case 3:
include("3.php");
}
?>
Наконец-то до меня доперло. Спасибо большое, сделаю, как ты сказал.