[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Выполнение 2-ух действий после submit
setwork
Имеем следующее:

<?php require 'function.php'; ?>
<?php if(isset($_POST['submit']))
{
test();
}
?>
<html>
<body>

<form action="какой-то url" method="post">
<input type="text" value="Введите ваше имя" name="name">
<input type="text" value="Введите e-mail" name="email">
<input type="submit" value="Отправить" name="submit">
</form>
</body>
</html>

Вариант 1. В представленном выше виде данные отправляются на указанный url в action, но функция test() не выполняется.

Вариант 2. Если action="", то выполняется test()

Вопрос: Как сделать чтобы выполнялись оба действия?

Заранее благодарен за помощь!
Игорь_Vasinsky
Цитата
Вариант 1. В представленном выше виде данные отправляются на указанный url в action, но функция test() не выполняется


всё верно - форма отправляет данные на "какой-то url" - где должен быть обработчик

Цитата
Вариант 2. Если action="", то выполняется test()

всё верно - обработчик эта же страница, где и

Цитата
<?php if(isset($_POST['submit']))
{
test();
}
?>


Цитата
Вопрос: Как сделать чтобы выполнялись оба действия?


вызывать test() в обработчике по адресу "какой-то url"

_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
setwork
Цитата (Игорь_Vasinsky @ 25.04.2014 - 10:53)
Цитата
Вариант 1. В представленном выше виде данные отправляются на указанный url в action, но функция test() не выполняется


всё верно - форма отправляет данные на "какой-то url" - где должен быть обработчик

Цитата
Вариант 2. Если action="", то выполняется test()

всё верно - обработчик эта же страница, где и

Цитата
<?php if(isset($_POST['submit']))
{
test();
}
?>


Цитата
Вопрос: Как сделать чтобы выполнялись оба действия?


вызывать test() в обработчике по адресу "какой-то url"

Спасибо за оперативный ответ, но доступа к "какому-то урлу" не имею - это сторонний сервис подписки. Можно, конечно, перенаправить на локальный .php, но как из него вызвать передачу данных на "какой-то урл"?
kaww
Как вариант, можно сделать на стороне клиента. Пример с использованием jQuery:

<form action="http://some.host/path" method="post" id="myForm">
<input
type="text" value="Введите ваше имя" name="name">
<input
type="text" value="Введите e-mail" name="email">
<input
type="submit" value="Отправить" name="submit">
</form>



$(function() {

$("#myForm").submit(function(e){

var form = this;
$.ajax({
url: "/callback.php",
type: form.method,
data: $(form).serialize(),
// success: function(data){}
})
return true;
});
});
sergeiss
setwork, у меня есть подозрение, что ты хочешь выполнить функцию проверки отправляемых данных. Если да, то это делается совсем по-другому.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
setwork
Цитата (sergeiss @ 25.04.2014 - 13:04)
setwork, у меня есть подозрение, что ты хочешь выполнить функцию проверки отправляемых данных. Если да, то это делается совсем по-другому.

Нет. Сама задача состоит в следующем:

Есть 2 сервиса подписки, к ним есть доступ по API.
При заполнении пользователем формы он должен попадать сразу в 2 сервиса.

Для одного из сервисов по API связал, второй хотел оставить как есть, но видимо и второй перепишу по API и после этого сделаю вызов функции, которая и раскидает данные по нужным сервисам.
sergeiss
Цитата (setwork @ 25.04.2014 - 13:11)
Есть 2 сервиса подписки, к ним есть доступ по API.
При заполнении пользователем формы он должен попадать сразу в 2 сервиса.

API на JS или на PHP?

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
setwork
Цитата (sergeiss @ 25.04.2014 - 13:22)
Цитата (setwork @ 25.04.2014 - 13:11)
Есть 2 сервиса подписки, к ним есть доступ по API.
При заполнении пользователем формы он должен попадать сразу в 2 сервиса.

API на JS или на PHP?

PHP
sergeiss
Тогда, наверное, CURL тебе в помощь. Делаешь свой обработчик, который принимает данные и обращается к нужным скриптам по их API.


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
setwork
Цитата (sergeiss @ 25.04.2014 - 13:54)
Тогда, наверное, CURL тебе в помощь. Делаешь свой обработчик, который принимает данные и обращается к нужным скриптам по их API.

наверное, хотя этого я не знаю, наверное нужно разобраться.
Спасибо за участие!
setwork
Продолжаем тему. Сделал на curl. Ниже приведен код. При нажатии на сабмит происходит запись в 2 системы подписки, то что нужно было.

Необходимо теперь по окончанию выполнения скрипта перекинуть на страницу url3. Как сделать? Если делать с помощью curl, то я вывожу на текущую страницу содержимое требуемой, но адрес остается прежний.



<?php if(isset($_POST['submit']))
{
$url1 = "url1";
$post_data1 = array (
"name" => $_POST['name'],
"email" => $_POST['email'],
"webform_id" => $_POST['webform_id']
);

$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, $url1);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch1, CURLOPT_POST, 1);
curl_setopt($ch1, CURLOPT_POSTFIELDS, $post_data1);
$output1 = curl_exec($ch1);
curl_close($ch1);

$url2 = "url2";
$post_data2 = array (
"lead_name" => $_POST['name'],
"lead_email" => $_POST['email']
);

$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url2);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch2, CURLOPT_POST, 1);
curl_setopt($ch2, CURLOPT_POSTFIELDS, $post_data2);
$output2 = curl_exec($ch2);
curl_close($ch2);
}

?>

<html>
<body>
<form
method="post">
<input
type="text" value="Введите ваше имя" name="name">
<input
type="text" value="Введите e-mail" name="email">
<input
type="submit" value="Отправить"name="submit">
<input
type="hidden" name="webform_id" value="7" />
</form>
Быстрый ответ:

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