|
php скрипт изменяющий значения формы
|
| Автор |
Сообщение |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Пт, 24 Сен, 2010 16:28 Заголовок сообщения: php скрипт изменяющий значения формы |
|
|
Прошу помочь написать php-скрипт изменяющий значение action="***" в теге <form> в зависимости от выбора пункта в выпадающем списке <select> той же формы. _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Пт, 24 Сен, 2010 16:46 Заголовок сообщения: |
|
|
SergejFedosov
Вы хотели сказать JS-скрипт?.. PHP на стороне клиента ведь не срабатывает. Вам нужно сразу менять или перегружая страницу? _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Пт, 24 Сен, 2010 17:00 Заголовок сообщения: |
|
|
Просто менять значение action в теге <form>. Перезагрузка страницы не нужна. _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Пт, 24 Сен, 2010 17:20 Заголовок сообщения: |
|
|
SergejFedosov
ответил в другой теме _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Вт, 05 Окт, 2010 14:49 Заголовок сообщения: |
|
|
LordPro.teus, спасибо.
Не хочу создавать новую тему, спрошу здесь.
Есть следующие скрипт и форма, отсылающие заявки в зависимости от страны проживания клиента на URLRU или URLUKR:
| Код: |
<script>
function countryCode(){
if (document.getElementById("selectCountry").selectedIndex == 1) {
document.getElementById("edi").value = "+7";
document.getElementById("myForm").action = "URLRU";
}//if
if (document.getElementById("selectCountry").selectedIndex == 2) {
document.getElementById("edi").value = "+380";
document.getElementById("myForm").action = "URLUKR";
}//if
}//function countryCode
</script>
<form method="POST" action="mistake.htm" accept-charset="utf-8" id = "myForm">
<select onchange="countryCode()" name="D1" id = "selectCountry">
<option value="C">Выберите страну проживания...</option>
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br><br>
ФИО: <input type="text" name="name" size="40"><br>
Контактный телефон: <input type="text" id="edi" name="phone" size="21"><br><br>
<center><input type="submit" value="Сделать заказ"></form></center>
</form>
|
Что нужно добавить, чтобы форма передавала данные не только в указанные URL, но и скрипту mail.php, отсылающему данные в email?
Скрипт mail.php:
| Код: |
<?
if (isset($_POST['ok'])) {
if (mail('myemail@gmail.com','Form data',"FIO:\n{$_POST['name']}\nPhone\n{$_POST['phone']}")) $a=true;
}
if (isset($a)) {
?>
Ваша заявка отправлена. <a href='index.htm'>Возврат на сайт</a>.
<? } ?>
|
_________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Вт, 05 Окт, 2010 14:57 Заголовок сообщения: |
|
|
SergejFedosov
тут уж только Ajax или CURL (для отправки одним скриптом данных другому с серверной стороны)... т.к. в нормальных условиях форма не должна (и не может) отправляться двум различным скриптам _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Вт, 05 Окт, 2010 15:05 Заголовок сообщения: |
|
|
LordPro.teus, а форма не может передать данные скрипту, который затем передаст их в 2 реципиента? _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Вт, 05 Окт, 2010 15:22 Заголовок сообщения: |
|
|
SergejFedosov
Может, разумеется. Но это уже не HTML, а PHP. Одна часть скрипта отправляет письмо, вторая - отправляет через CURL/сокеты данные скрипту на сайте банка. Под вопросом, впрочем, куда вы дальше хотите самого пользователя деть - послать на сайт банка - он не будет ассоциирован с формой, оставить у себя - тоже непонятно, зачем. Как вариант - по отправке формы пересылаете пользователя на скрипт, отправляющий письмо, после чего он должен вывести ту же форму (но уже невидимо, с текстом вроде "Ждите") - и автоматически отправить форму уже на сайт банка, выполнив form.submit() через JS. _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Вт, 05 Окт, 2010 16:33 Заголовок сообщения: |
|
|
| Цитата: | | Но это уже не HTML, а PHP. |
Так. Это ведь и раздел форума о php.
| Цитата: | | Под вопросом, впрочем, куда вы дальше хотите самого пользователя деть - послать на сайт банка - он не будет ассоциирован с формой... |
Спасибо за уточнение. Собственно, чего ему на сайте банка делать? В коде, что Вы любезно написале мне ранее, он попадает на сгенирированную страничку с текстом: Ваша заявка отправлена. <a href='index.htm'>Возврат на сайт</a>. Меня вполне устроит такой вариант. Или, что еще лучше, отправка его на страницу prinjato.htm. _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Вт, 05 Окт, 2010 16:44 Заголовок сообщения: |
|
|
Т.е. я прошу улучшить скрипт:
| Код: |
<?
if (isset($_POST['ok'])) {
if (mail('myemail@gmail.com','Form data',"FIO:\n{$_POST['name']}\nPhone\n{$_POST['phone']}")) $a=true;
}
if (isset($a)) {
?>
Ваша заявка отправлена. <a href='index.htm'>Возврат на сайт</a>.
<? } ?>
|
чтобы кроме отправки данных name и phone в email он отправлял бы их в URL и переводил пользователя на страницу prinjato.htm. _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
[LP]LordPro.teus Призрак Лорда


Зарегистрирован: 26.07.2007 Сообщения: 5092
42282 
|
Добавлено: Вт, 05 Окт, 2010 17:21 Заголовок сообщения: |
|
|
SergejFedosov
Все, дошло Прошу прощения, излишне усложнил схему, из-за чего неправильно понял задачу.
1) action формы ставим соответственно скрипту отправки письма
2) страну передаем либо обычным select'ом (что проще), либо через добавление параметра в адрес скрипта (?country=X) - в чем, на самом деле, нет никакой особой нужды, select удобнее
3) после отправки письма выполняем следующий код:
| Код: | | Header('Location: mysite.com/sent'.$x.'.html'); |
Где $x - та переменная в которой вы передаете страну. Соответственно, вам нужно 2 HTML-страницы с именем sent+страна.html
Общая схема такова _________________

До выхода LiteDiary 0.3.0: парам-пам-пам-пам! Она уже здесь! |
|
| Вернуться к началу |
|
 |
SergejFedosov 11 1110 1000


Зарегистрирован: 18.08.2006 Сообщения: 1127
8864 
|
Добавлено: Вт, 05 Окт, 2010 18:15 Заголовок сообщения: |
|
|
| [LP]LordPro.teus писал(а): | после отправки письма выполняем следующий код:
Код:
Header('Location: mysite.com/sent'.$x.'.html');
Где $x - та переменная в которой вы передаете страну. Соответственно, вам нужно 2 HTML-страницы с именем sent+страна.html
Общая схема такова |
Я полагал, что в существующем коде:
| Код: |
<script>
function countryCode(){
if (document.getElementById("selectCountry").selectedIndex == 1) {
document.getElementById("edi").value = "+7";
document.getElementById("myForm").action = "URLRU";
}//if
if (document.getElementById("selectCountry").selectedIndex == 2) {
document.getElementById("edi").value = "+380";
document.getElementById("myForm").action = "URLUKR";
}//if
}//function countryCode
</script>
<form method="POST" action="mistake.htm" accept-charset="utf-8" id = "myForm">
<select onchange="countryCode()" name="D1" id = "selectCountry">
<option value="C">Выберите страну проживания...</option>
<option value="A">Россия</option>
<option value="B">Украина</option>
</select><br><br>
ФИО: <input type="text" name="name" size="40"><br>
Контактный телефон: <input type="text" id="edi" name="phone" size="21"><br><br>
<center><input type="submit" value="Сделать заказ"></form></center>
</form>
|
URLRU и URLUKR следует заменить однотипными скриптами ru.php и ukr.php , которые: а) отсылают данные name и phone в email myemail@gmail.com, б) передают те же данные в ulr URLRU и URLUKR соответственно (это разные url-адреса на разных сайтах), в) перенаправляют пользователя на страницу prinjato.htm. Вопрос, собственно, в написании этого ru.php (ukr.php) скрипта. Я не знаком даже с основами php. _________________ Кредитная карта для веб-мастера |
|
| Вернуться к началу |
|
 |
Monarx Гость
0 
|
Добавлено: Чт, 07 Окт, 2010 20:22 Заголовок сообщения: Re: php скрипт изменяющий значения формы |
|
|
| SergejFedosov писал(а): | | Прошу помочь написать php-скрипт изменяющий значение action="***" в теге <form> в зависимости от выбора пункта в выпадающем списке <select> той же формы. |
и зачем забор городить? ведь можно в одном акшене два обработчика прописать через if |
|
| Вернуться к началу |
|
 |
|