Подменять action у формы перед отсылкой

 
0
 
JavaScript
ava
kito | 22.10.2004, 14:37
Привет всем!
Уже который раз возникает проблема, которую постоянно пытался обойти окольными путями, но в конце-концов решил сделать всё же так как задумывал. Проблема в следующем.
Есть форма в которой существуют определённые поля, обрабатывать которые должны разные файлы и несколько кнопок сабмит. Т.е. мне необходимо каким-то образом подменять экшин у формы перед отсылкой данных. Я сделал предположение что эту проблему можно решить следующим образом (правда так и не смог это реализовать в виде кода) На onSubmit у формы повесить функцию, которая подменяет URL у action формы. Каждая кнопка имеет разные имена. По названию кнопки я в самой функции меняю action формы. Вроде бы всё просто smile но как это реализовать пока не знаю. Может кто-то уже сталкивался с подобной проблемой? Подскажите или напишите примерный код.
Заранее спасибо smile
Comments (4)
ava
Irokez | 22.10.2004, 13:42 #
Это не так делается, экшн подменять не надо
просто называешь свои кнопки Субмита по разному, а в коде которым принимаешь данные проверяешь на наличие кнопок, те к примеру если две кнопки: send и cancel, то в пхп коде (или любом другом), проверяешь:

if(isset($_POST['send']))
{
...
}
elseif(isset($_POST['cancel']))
{
...
}
ava
GoodBoy | 22.10.2004, 14:12 #
вообще кажется можно подменить вот так:
<form name=forma action="/cgi-bin/script.cgi" method=post>
...
</form>

<script>
document.getElementById("forma").action = "/doc/do_it.php";
</script>
ava
Aliance | 22.10.2004, 14:17 #
Есть более мудрое решение: использовать чекбокс, чтобы определить, что нужно пользователю, из этого выводим action:


...
form.action = (form.myCheckBox.checked) ? "special.php" : "normal.php";
...
ava
Sardar | 22.10.2004, 16:02 #
Из всего сказанного выделим смысл: у обьекта формы есть свойство action, которое мы можем изменять.
Достаем форму по имени через document.forms.formname или по id: document.getElementById("formid"), а затем меняем свойство: form.action=".." или form.setAttribute("..") - что лучше.

Поищи здесь примеры работы с формой, их тут не мерянно smile
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
  Sardar   GoodBoy ava  Aliance   Irokez   kito
advanced
Submit