Есть форма, необходимо, что бы адрес ее отправки (тоесть атрибут 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 Но ты попробуй, возможно, что получится.
Игорь Васинский - твой код заведомо неверный!!!!!!!!!!!!!!!!!!!! Работать не будет.
По теме: поработай с событием onsubmit для формы. Там ты можешь сделать много чего, в промежутке между нажатием кнопки и реальной отправкой данных. Если честно, я не помню, можно ли там менять action Но ты попробуй, возможно, что получится.
Игорь Васинский - твой код заведомо неверный!!!!!!!!!!!!!!!!!!!! Работать не будет.
Спустя 3 минуты, 45 секунд (30.10.2010 - 19:06) Игорь_Vasinsky написал(а):
ну это вопрос отладки, замысел был таков: в зависимости от клика по radio присваивать $action - в JS, это же строка, а переменные из JS тк же переменные и в PHP
а вообще можно при клике location.href - а адрес с GET - типа action.php?act=1
а на обработчике считывать это GET и дальше что угодно
а вообще можно при клике 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 - и опять неправильно Что это за смесь ПХП и JS??? С какого "перепуга" во время выполнения скрипта произойдет назначение нужного экшена?
Сейчас напишу что-нибудь рабочее, выложу.
Сейчас напишу что-нибудь рабочее, выложу.
Спустя 6 минут, 4 секунды (30.10.2010 - 20:03) sergeiss написал(а):
По-моему, где-то так:
PS. И лучше избегать использования ключевых слов, типа, например, 'form', для использования как айдишников.
<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 выполняется на сервере...
И все же где в моем примере ошибка, может быть я непраильно проверяю переменные на существование?
Игорь_Vasinsky - без перезагрузки твой код не будет работатть, ибо PHP выполняется на сервере...
И все же где в моем примере ошибка, может быть я непраильно проверяю переменные на существование?
Спустя 1 минута, 26 секунд (30.10.2010 - 21:00) Игорь_Vasinsky написал(а):
...ну я написал же что глюканул...
а если по твоему коду - не выбрана не одна radio (кстати с одинаковыми ID)... так что одну надо select
а если по твоему коду - не выбрана не одна radio (кстати с одинаковыми ID)... так что одну надо select
Спустя 5 минут, 53 секунды (30.10.2010 - 21:06) sergeiss написал(а):
linf - а вообще странно, что работает Там в функции надо написать "return true;", а не "фалс"
Точнее, даже еще и добавить в обработчике сабмита, так написать
Вроде как-то так будет.
Точнее, даже еще и добавить в обработчике сабмита, так написать
onsubmit="return setaction()"
Вроде как-то так будет.
_____________
Live in new format =)