Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

форма и action

291
31 января 2003 года
gufy
703 / / 08.01.2003
мне нужно после сабмита формы (видимо, средствами JS) сделать так, что в зависимости от выбранного radio в форме 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
<?}?>


прошу еще учесть, что это радио - не единственный элемент этой формы, поэтому, например просто
 
Код:
header(location:1.php)

или window.open("1.php") не помогут, так как $_POST должен остаться, а передавать его параметры через адрес...
250
31 января 2003 года
Joker
1.4K / / 20.02.2000
Может так как то:
switch ($_POST['act']) {
case "1":
если 1
break;
case "2":
если 2
break;
default:
что то если ничего не подошло
break;
}
291
01 февраля 2003 года
gufy
703 / / 08.01.2003
проблема в том что это срабатывает при 2 сабмите формы. при первом она как бы формирует этот action, а дальше до обновления страницы она при любом значении radio будет считать экшн таким же...
250
01 февраля 2003 года
Joker
1.4K / / 20.02.2000
ну тогда проверяй, делался субмит вообще или нет.. :
isset() - проверяет определина ли переменная.
(а вообще объясни все по человечиски че те надо)
291
01 февраля 2003 года
gufy
703 / / 08.01.2003
Ну смотри.
Есть у меня радио. в зависимости от значения меняется action.
при загрузке экшн такой:
..action="<? choose() ?>
а
function choose()
{
if ($_POST['1']=="1")
{?>1.php<?}?>
}

после чего страница перегружается без изменений, а вот атрибут action равен 1.php, после чего вне зависимости от значения радио работает естессно 1.php.

фу, вроде теперь понятно пояснил...
250
01 февраля 2003 года
Joker
1.4K / / 20.02.2000
Цитата:
Originally posted by gufy
Ну смотри.
Есть у меня радио. в зависимости от значения меняется action.
при загрузке экшн такой:
..action="<? choose() ?>
а
function choose()
{
if ($_POST['1']=="1")
{?>1.php<?}?>
}

после чего страница перегружается без изменений, а вот атрибут action равен 1.php, после чего вне зависимости от значения радио работает естессно 1.php.

фу, вроде теперь понятно пояснил...


Тогда я че то не пойму чем мой путь решения тебя не нравится:
Проверяй функцией существование переменной, isset то грузится дефолтовая экшин
А потом свитч, если 1 то то если два то и.т.д
можно еще после загрузки очищать переменную(как это делать я уже тебе говорил)

291
02 февраля 2003 года
gufy
703 / / 08.01.2003
я подумаю/попробую так что тема пока не закрыта. хотя идея и здравая, но могут быть проблемы, все равно спасибо.
2.4K
05 февраля 2003 года
L'Eglantier
21 / / 31.01.2003
Цитата:
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");
}
   
?>
291
05 февраля 2003 года
gufy
703 / / 08.01.2003
L'Eglantier
Наконец-то до меня доперло. Спасибо большое, сделаю, как ты сказал.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог