[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Несколько скриптов на одну форму.
Aleksander
Всем привет, подскажите можно ли какнить на одну форму повесить несколько скриптов, например поставить три Сабмита , и чтобы каждый запускал свой скрипт обрабатывающий данные с формы?



Спустя 11 минут, 22 секунды (26.03.2009 - 15:57) LRCenter написал(а):
Такое проще всего сделать с помощью AJAX, или просто JS

Спустя 2 минуты, 32 секунды (26.03.2009 - 15:59) Kuliev написал(а):
Цитата (LRCenter @ 26.03.2009 - 12:57)
Такое проще всего сделать с помощью AJAX, или просто JS

+1

Спустя 5 минут, 59 секунд (26.03.2009 - 16:05) LRCenter написал(а):
На уровне интерфейса страницы если.

Спустя 47 секунд (26.03.2009 - 16:06) Aleksander написал(а):
Цитата (LRCenter @ 26.03.2009 - 12:57)
Такое проще всего сделать с помощью AJAX, или просто JS

С AJAX к сожалению я не подружился:))
А по JS это что то типа , проверяем какой сабмит нажат, и вешаем в <Form action="" method="post">
в action имя нужного скрипта?

Спустя 3 минуты, 14 секунд (26.03.2009 - 16:09) LRCenter написал(а):
Ну можно добавить в форму(или вне ее) дополнительный элемент выбора- раскрывающийся список, например. И в зависимости от выбора на JS-е менять action у формы.

а насчет нескольких сабмитов я даже незнаю...

Спустя 25 минут, 9 секунд (26.03.2009 - 16:34) waldicom написал(а):
Цитата (Aleksander @ 26.03.2009 - 13:45)
Всем привет, подскажите можно ли какнить на одну форму повесить несколько скриптов, например поставить три Сабмита , и чтобы каждый запускал свой скрипт обрабатывающий данные с формы?

А почему не передать управление одному скрипту, который уже и будет смотреть, какой сабмит нажат и в соответствии с этим будет делать что надо (хоть другие скрипты вызывать)

Спустя 7 минут, 59 секунд (26.03.2009 - 16:42) sergeiss написал(а):
AJAX зачем?
Делаем onclick для кнопок. В обработчике выставляем нужный action для формы, и затем вызываем функцию submit для формы. И хоть сотню кнопок разных делай.

Но лучше этого НЕ ДЕЛАТЬ!!!! smile.gif

Потому чтона принимающей стороне легко и просто отследить, какая именно кнопка была нажата, и предпринять те или иные действия.

PS. waldicom - опередил немного, пока я тут работой занимался smile.gif

Спустя 48 минут, 33 секунды (26.03.2009 - 17:31) Aleksander написал(а):
Цитата (waldicom @ 26.03.2009 - 13:34)
Цитата (Aleksander @ 26.03.2009 - 13:45)
Всем привет, подскажите можно ли какнить на одну форму повесить несколько скриптов, например поставить три Сабмита , и чтобы каждый запускал свой скрипт обрабатывающий данные с формы?

А почему не передать управление одному скрипту, который уже и будет смотреть, какой сабмит нажат и в соответствии с этим будет делать что надо (хоть другие скрипты вызывать)

А можно по подробнее, насчёт вызова из одного скрипта , других скриптов?

Спустя 2 минуты, 25 секунд (26.03.2009 - 17:33) waldicom написал(а):
Море вожможностей: от shell_exec() и system(), через header() и до curl

Спустя 3 минуты, 49 секунд (26.03.2009 - 17:37) modobaks написал(а):
PHP
<?php
if( isset( $_POST['on_save'] ) )
{

}
elseif(
 isset( $_POST['on_load'] ) )
{

}

HTML
<form action = "index.php" method = "post">
<input type = "submit" name = "on_save">
<input type = "submit" name = "on_load">
<input type = "submit" name = "on_exit">
</form>


так попробуй, ...

Спустя 19 минут, 8 секунд (26.03.2009 - 17:56) Aleksander написал(а):
Спасибо!, затестю!

Спустя 22 часа, 39 минут, 54 секунды (27.03.2009 - 16:36) Aleksander написал(а):
Вроде работает, а как думаете это ваще нормально использовать такой приём?

Спустя 17 часов, 28 минут, 42 секунды (28.03.2009 - 10:05) bret написал(а):
Цитата
Вроде работает, а как думаете это ваще нормально использовать такой приём?

Да!
И никаких потенциально отключенных js

Спустя 3 дня, 2 часа, 16 минут, 50 секунд (31.03.2009 - 11:22) Aleksander написал(а):
Снова проблема, пришлось одну из Сабмитов заменить на обычный Баттон,на эту кнопку повесил вызов функции которая если всё нормуль , делает так:
document.forms[0].submit();

Всё работает, но в скрипте обработчике формы не работает такая штука:
if( isset( $_POST['UpNam'] ) )
{

}

тоесть я так понял сюда я попадаю не по конкретно нажатию какойто кнопки а через вызов функции, поэтому и нету такой переменной как $_POST['UpNam'].

А можно ли сделать так чтобы document.forms[0].submit(); вызывалось от определённой кнопки ну например что то типа :

ButtSub=document.getElementById("BatUpd");
document.forms[0].ButtSub.submit();

Хоть конкретно этот пример и неработает, но может есть чтото типа этого?

Спустя 4 минуты, 39 секунд (31.03.2009 - 11:26) sergeiss написал(а):
Лучше будет, наверное, завести скрытое (type="hidden") поле. В которое записываешь сначала какое-то значение "по умолчанию". Которое (при проверке) говорит о том, что была нажата кнопка.
Если же ты через submit запускаешь, то тогда выставляешь в value этого скрытого поля другую величину. Которая может зависеть от того, с какой кнопки ты пришел в обработчик, т.к. какая кнопка была нажата перед программным сабмитом.

Спустя 5 часов, 45 минут, 37 секунд (31.03.2009 - 17:12) Aleksander написал(а):
Цитата (sergeiss @ 31.03.2009 - 08:26)
Лучше будет, наверное, завести скрытое (type="hidden") поле. В которое записываешь сначала какое-то значение "по умолчанию". Которое (при проверке) говорит о том, что была нажата кнопка.
Если же ты через submit запускаешь, то тогда выставляешь в value этого скрытого поля другую величину. Которая может зависеть от того, с какой кнопки ты пришел в обработчик, т.к. какая кнопка была нажата перед программным сабмитом.

Дело в том что нажимая на Кнопку вызывается функция :document.forms[0].submit();
А нажимая на Сабмит вызывается таже функция только как то програмно.

И values Скрытого поля поетому всегда одно и тоже, нельзя сделать так что при нажатии на Кнопку оно было одно а по нажатию на Сабмит другое:(
Или я чото нетак понял...

Спустя 9 минут, 14 секунд (31.03.2009 - 17:21) sergeiss написал(а):
Ты не так понял smile.gif

Вот смотри на код (ежели вдруг и ошибусь, ужО не обессудь smile.gif, пишу едва ли не "на ходу"):
HTML
<input type="hidden" name="hid01" value="main_button_pressed" />
<input type="button" name="but01" onclick=" process_pressed_button();' />
<input type="submit" name="main_but" value="Жмякай тут!" />

// текст функции
process_pressed_button()
{
// делаем тут любые проверки, назначения, действия
....

// и в нужном месте сначала изменяем величину скрытого поля, а потом только программно запускаем форму
document.getElementById('hid01').value='but01_pressed';
document.forms[0].submit();
}


Что произойдет? А вот на этот вопрос сам найди ответ smile.gif

Аналогично можно узнать, что была нажата какая-то третья, четвертая, пятая кнопки...

Спустя 59 минут, 51 секунда (31.03.2009 - 18:21) Aleksander написал(а):
Ну я делал тоже самое только в Значение скрытого поля заносил 1, и нажимая на Сабмит или на Баттон в значение Хиддена ложилась единица:)

Просто нужно document.getElementById('hid01').value='but01_pressed'; ложить до
document.forms[0].submit();
Тоесть перед всеми проверками, тогда работает.
Ну и сама функция должна начанаться с присваивания Скрытому полю Нулевого значения.

Спустя 5 часов, 24 минуты, 47 секунд (1.04.2009 - 23:46) Sergeyko5 написал(а):
С этой книги будет толк, если ее прочитать?
КНИГА ПО PHP4
размер файла 1,14МБ
Быстрый ответ:

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