[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выбор значения атрибута "action" из значений формы
linf
Задача такова:

Есть форма, необходимо, что бы адрес ее отправки (тоесть атрибут action в теге FORM) можно было выбрать в поле "<input type="radio">"


<form METHOD=GET ID="form">
<INPUT
name=q id="text">

<BR>
<input
type="radio" id="to1" value="111.php">1
<input type="radio" id="to2" value="222.php">2
<input type="radio" id="to3" value="333.php">3
<INPUT type="submit" value="отправить">
</form>




Я делаю так, но ничего не получается:



<script type="text/javascript">
if (to1) {form.setAttribute("action",to1.value);}
if (to2) {form.setAttribute("action",to2.value);}
if (to3) {form.setAttribute("action",to3.value);}
</script>




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



Спустя 15 минут, 57 секунд (30.10.2010 - 19:03) sergeiss написал(а):
Во-первых, не надо размещать ссылки в СМС. Кому надо, тот увидит.

По теме: поработай с событием onsubmit для формы. Там ты можешь сделать много чего, в промежутке между нажатием кнопки и реальной отправкой данных. Если честно, я не помню, можно ли там менять action smile.gif Но ты попробуй, возможно, что получится.

Игорь Васинский - твой код заведомо неверный!!!!!!!!!!!!!!!!!!!! Работать не будет.

Спустя 3 минуты, 45 секунд (30.10.2010 - 19:06) Игорь_Vasinsky написал(а):
ну это вопрос отладки, замысел был таков: в зависимости от клика по radio присваивать $action - в JS, это же строка, а переменные из JS тк же переменные и в PHP

а вообще можно при клике location.href - а адрес с GET - типа action.php?act=1

а на обработчике считывать это GET и дальше что угодно

Спустя 18 минут, 34 секунды (30.10.2010 - 19:25) sergeiss написал(а):
Игорь_Vasinsky - замысел твой я понял, но реализация у тебя неправильная.

Спустя 2 минуты, 12 секунд (30.10.2010 - 19:27) Игорь_Vasinsky написал(а):
ну....я уж сам посмотрел и стёр сообщение...сходу стока на калаякал.......

Спустя 16 минут, 11 секунд (30.10.2010 - 19:43) Игорь_Vasinsky написал(а):
<html>
<
head>
<
script language ="JavaScript">
var action = "nothing";
function act1(){action = "act1.php";}
function act1(){action = "act2.php";}
function act1(){action = "act3.php";}
</script>
</
head>

<
body>
<
form method="GET" id="form" action="<?php echo $action; ?>">
<
INPUT name=q id="text">
<
input type="radio" id="to1" value="111.php" onclick="javascript:submit.disabled=false; act1();">1
<input type="radio" id="to2" value="222.php" onclick="javascript:submit.disabled=false; act2();">2
<input type="radio" id="to3" value="333.php" onclick="javascript:submit.disabled=false; act3();">3
<INPUT type="submit" value="send" id="submit" disabled>
</
form>
</
body>
</
html>


Гы...тока в реал тайме переменные я неправильно присваиваю..там что то вроде .text('action.php') - если JQuery использовать на JS не помню как вписыват данные

Спустя 14 минут, 1 секунда (30.10.2010 - 19:57) sergeiss написал(а):
Игорь_Vasinsky - и опять неправильно smile.gif Что это за смесь ПХП и JS??? С какого "перепуга" во время выполнения скрипта произойдет назначение нужного экшена?

Сейчас напишу что-нибудь рабочее, выложу.

Спустя 6 минут, 4 секунды (30.10.2010 - 20:03) sergeiss написал(а):
По-моему, где-то так:

<script language="javascript" type="text/javascript">
function
setaction()
{
document.getElementById( 'form_to_send' ).action=new_action;
return false;
}
</script>


<form
METHOD=GET ID="form_to_send" onsubmit="setaction()">
<INPUT
name=q id="text">
<input
type="radio" id="to1" name="to1" onclick=" new_action='111.php'">1
<input type="radio" id="to1" name="to1" onclick=" new_action='222.php'">2
<input type="radio" id="to1" name="to1" onclick=" new_action='222.php'">3
<INPUT type="submit" value="отправить">
</form>


PS. И лучше избегать использования ключевых слов, типа, например, 'form', для использования как айдишников.

Спустя 55 минут, 17 секунд (30.10.2010 - 20:59) linf написал(а):
sergeiss, спасибо, но работает странновато, глючно, не иногда не видит action и перебрасывает на эту же страницу.

Игорь_Vasinsky - без перезагрузки твой код не будет работатть, ибо PHP выполняется на сервере...

И все же где в моем примере ошибка, может быть я непраильно проверяю переменные на существование?

Спустя 1 минута, 26 секунд (30.10.2010 - 21:00) Игорь_Vasinsky написал(а):
...ну я написал же что глюканул...

а если по твоему коду - не выбрана не одна radio (кстати с одинаковыми ID)... так что одну надо select

Спустя 5 минут, 53 секунды (30.10.2010 - 21:06) sergeiss написал(а):
linf - а вообще странно, что работает smile.gif Там в функции надо написать "return true;", а не "фалс" smile.gif
Точнее, даже еще и добавить в обработчике сабмита, так написать
onsubmit="return setaction()"

Вроде как-то так будет.


_____________
Live in new format =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.