Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Форма отправки заказа (http://www.flasher.ru/forum/showthread.php?t=119176)

Doping86 14.12.2008 06:11

Форма отправки заказа
 
Помогите, пожалуйста. Нужна форма отправки заказа на e-mail. Должна содержать: контактное лицо, конт. телефон, e-mail, поле с выбором продукции и ее кол-ва, кнопку отправить и сообщение, мол, спасибо за заказ

dlinnii 14.12.2008 10:22

Есть такая штука - Гугль.
Еще есть поиск по форуму.
Подскажу ключевики: flash php e-mail

Doping86 15.12.2008 00:25

мне нужно без пхп, т.к. я его не знаю.

Art_133 15.12.2008 00:35

А его знать не обязательно, но без него на сколько я знаю никак. Завтра если не забуду отправлю пример отправки имейла.
Но думаю, чем ждать проще самому найти и разобраться. Это не так сложно.

Добавлено через 1 минуту
Кстати, вот готовый пример http://www.flashblog.ru/?p=196

Doping86 15.12.2008 10:02

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

Art_133 15.12.2008 11:54

А вы думаете что Вам предоставят уже готовый пример подогнаный под Ваши требования? Я предоставил вариант от которого можно отталкиваться.

nOobCrafter 15.12.2008 12:47

Все поля (поля выбора товара и его количества + ...) делаешь по аналогии во флеше. Потом в пхп только подставляешь данные которые надо переслать (данные из тех самых полей) и емаил, и фсо.

Lionis 15.12.2008 19:06

ВЫ искали это?
---
Без php никак - это точно
---
вот сам скрипт mail.php
PHP код:

<?
$receiver
="mail@mail.ru";  // email получателя
$sender_mail="посетитель сайта";  // email отправителя

$text =  iconv("UTF-8""Windows-1251"$_REQUEST['letter_text']);  // текст из флеш

$from='From: <'.$sender_mail.'>';
$subject='Сообщение с сайта';
$success=mail($receiver$subject$text$from);

echo 
"ok";

?>

---
то что в Flash -
всего 1 кадр - 2 слоя
---
слой action sript -
Код AS1/AS2:

var s_and_l_obj:LoadVars=new LoadVars();
var rec_obj:LoadVars=new LoadVars();
 
but.onPress=function():Void{
        s_and_l_obj.letter_text=txt1.text+"\n\n"+txt2.text+"\n\n"+txt3.text;
        s_and_l_obj.sendAndLoad("mail.php",rec_obj,"POST");
}
rec_obj.onData=function(text:String):Void{
        if (text=="ok"){
                txt1.text="";
                txt2.text="";
                txt3.text="Ваше сообщение было успешно отправлено!";
        }
}

и 2 слой - там где будут располагаться текстовые поля и кнопка для отправки :

вообщем исходники

Doping86 16.12.2008 09:45

Вложений: 1
Вот как сделать, чтобы сумма считалась автоматически? Есть список, кол-во и поле сумма. Нужно, чтобы сумма автоматически пересчитывалась при смене кол-ва или товара. И какие лучше компоненты для этого использовать (для списка и вывода суммы по строке).


Вообщем, что-то никак не срастается. Решила все же выложить исходник обратной связи. Проблема в том, что сообщение не отправляется, а при нажатии на кнопку "Отправить" не переходит на следующий кадр. Вот исходник

Mnilionic 17.12.2008 01:35

при изменении товара или кол-ва перемножайте единичную цену товара на кол-во и получите обновлённую сумму стоимости.

в вашем исходнике нет ни одного заявленного поля.

Цитата:

а при нажатии на кнопку "Отправить" не переходит на следующий кадр
Он переходит на кадр, в котором написано чтоб он вернулся обратно )). Это происходит очень быстро - вы этого не замечаете просто :)

Doping86 17.12.2008 16:54

Цитата:

Сообщение от Mnilionic (Сообщение 784331)
Это происходит очень быстро - вы этого не замечаете просто :)

а как сделать, чтобы это было видно?

Mnilionic 17.12.2008 17:30

убрать из последнего кадра
Код AS1/AS2:

gotoAndStop("Form");


lexa2000lexa 17.12.2008 17:40

Цитата:

Сообщение от Doping86 (Сообщение 784458)
а как сделать, чтобы это было видно?

поставить задержку
Код AS1/AS2:

setTimeout(function(){gotoAndStop("Form"),2000})


Doping86 17.12.2008 18:36

теперь видно, но сообщение не отправляет, вернее, на почту ничего не приходит.

Mnilionic 17.12.2008 19:21

и не должно приходить. Данные отправляются в космос.
Код AS1/AS2:

myLoadVars.sendAndLoad();


Doping86 17.12.2008 19:41

что тогда подставить, если еще нет хоста и не известно пока, куда отправлять?

Mnilionic 17.12.2008 20:00

данные отправляются на "хост", а оттуда на почтовый ящик. нет хоста - нет поста.
Можете на своём домашнем компьютере сэмитировать его, установив необходимое ПО, для тестов.

Doping86 17.12.2008 20:22

понятно. а есть какие-нибудь компоненты, которые загружают файл формата *txt?

Mnilionic 17.12.2008 20:55

наверно есть.
Код AS1/AS2:

var lv:LoadVars = new LoadVars();
lv.onData = function(content:String):Void{
        if(content == undefined) trace ('Error load file')
        else trace(content);
}
lv.load('document.txt');


Doping86 17.12.2008 21:18

а как у компонента Loader убрать границы? т.к. в основной документ загружаются все остальные страницы с помощью компонента Loader и как-то не очень красиво выглядят эти рамки.
кстати, не загружает текстовый файл. выдает его на панели Output

Zik. 17.12.2008 21:20

никак! эти компоненты самая бесполезная вещь во всей флеше

Doping86 17.12.2008 22:37

то есть?

Добавлено через 4 минуты
кстати, какой должна быть ссылка на хост, чтобы сообщение с сайта отправлялось?

Mnilionic 17.12.2008 23:17

магических ссылок не бывает.
Ссылку должна вести на скрипт, который принимает данные из флеша, формирует сообщение и отправляет его на почту.
Этот скрипт должны написать Вы. А потом поставить ссылку на него из флеша.

Doping86 17.12.2008 23:20

скрипт есть, в нем строка
Код AS1/AS2:

myLoadVars.sendAndLoad();

а в скобках должна быть ссылка куда пересылается это сообщение и откуда оно потом отправляется на почту

Mnilionic 17.12.2008 23:43

:) Объясните ей кто-нибудь, пожалуйста. у меня руки уже опускаются...

намёк:
Код AS1/AS2:

myLoadVars.sendAndLoad('link_to_script_on_my_server.php', result_obj, 'POST');


Doping86 18.12.2008 00:06

да не могу я, е-мое! не получается ни фига! Хост php поддерживает, залила на него php-файл, но ничего не приходит:wacko:

scarbo 18.12.2008 00:13

С самого начала я отправлял в Вакансии,тогда мой призыв удалили,интересно сейчас поддержат?
Девушка В Вакансии,там все быстро сделают.

Doping86 18.12.2008 00:23

Цитата:

Сообщение от scarbo (Сообщение 784576)
С самого начала я отправлял в Вакансии,тогда мой призыв удалили,интересно сейчас поддержат?
Девушка В Вакансии,там все быстро сделают.

это вообще к чему было сказано? :eek:

scarbo 18.12.2008 00:30

К тому, что Вам стоит в раздел вакансии обратиться.
Или Выкладывайте свой исходник с Флешкой и PHP тут на кафейной гуще не гадают

Doping86 18.12.2008 00:36

исходник был выложен ранее http://www.flasher.ru/forum/showthread.php?t=119176

scarbo 18.12.2008 01:16

так значит уберите все компоненты,нарисуйте столько input полей сколько нужно(ну например в Вашем случае - 4)обзовите их(например fio_txt(для ввода ФИО и напишите там :"Введите Вашу Фамилию"),mail_txt(для email и напишите там :"Введите Ваш e-mail"),tel_txt(для телефона и напишите там :"Введите Ваш телефон")text_txt(собственно для сообщения и напишите там :"Введи те своё сообщение"),дальше нарисуйте кнопочку для отправки назовите send_mc.
Дальше в КАДР вставьте этот код
Код AS1/AS2:

Stage.scaleMode = "noScale";
//
var String_fio = fio_txt.text;
var String_mail = mail_txt.text;
var String_text = text_txt.text;
var String_tel = tel_txt.text;
//
fio_txt.onSetFocus = function() {
        this.text = "";
        delete this.onSetFocus;
};
//
mail_txt.onSetFocus = function() {
        this.text = "";
        delete this.onSetFocus;
};
//
text_txt.onSetFocus = function() {
        this.text = "";
        delete this.onSetFocus;
};
//
tel_txt.onSetFocus = function() {
                this.text = "";
                delete this.onSetFocus;
};
//
fio_txt.onKillFocus = function() {
        if (this.text == "") {
                this.text = String_fio;
        }
};
mail_txt.onKillFocus = function() {
        if (this.text == "") {
                this.text = String_mail;
        }
};
text_txt.onKillFocus = function() {
        if (this.text == "") {
                this.text = String_text;
        }
};
tel_txt.onKillFocus = function() {
                if (this.text == "") {
                        this.text = String_tel;
                }
        };
//
send_mc.onPress = function() {
        var Eror:String = mail_txt.text;
        var Eror1:String = fio_txt.text;
        var Eror2:String = text_txt.text;
        var Eror3:String = tel_txt.text;
        index = Eror.indexOf("@");
        if (index != -1 && Eror1 != "" && Eror2 != "" && Eror3 != "" && Eror1 != String_fio && Eror2 != String_text && Eror3 != String_tel) {
                LO = new LoadVars();
                LO.mailmsg = text_txt.text;
                LO.subj = "doping_86";
                LO.fn = fio_txt.text+" ("+tel_txt.text+")";
                LO.mail = mail_txt.text;
                LO.sendAndLoad("pismo.php",LO,"POST");
                text_txt.text = "Спасибо,Ваше сообщение отправлено.";
                fio_txt.text = String_fio;
                mail_txt.text = String_mail;
                tel_txt.text = String_tel;
        }else{
                text_txt.text ="Вы,батенька - сволочь!\nФорму заполнили не правильно!!!"
                Eror="";
                Eror1="";
                Eror2="";
                Eror3 = "";
        }
};

дальше киньте swf на сервер,в туже директорию киньте файл PHP
PHP код:

<?
$mail 
iconv("UTF-8""koi8-r"$mail);
$fn iconv("UTF-8""koi8-r"$fn);
$mailmsg iconv("UTF-8""koi8-r"$mailmsg);
$subj iconv("UTF-8""koi8-r"$subj);

mail("doping_86@inbox.ru"$subj$mailmsg,"From: $fn <$mail>");
?>

P.S. __etc конечно скажет свое фи по поводу перекодировки,зато так в оутлуке читать можно,а им ,к сожалению, пользуется большинство.

etc 18.12.2008 01:35

А аутглюк не поддерживает utf-8 что ли?

Doping86 18.12.2008 02:21

теперь встала еще одна проблема, заливаю на ftp-сервер (с поддержкой php), но файл не виден, когда захожу как на сайт.

scarbo 18.12.2008 03:32

Цитата:

А аутглюк не поддерживает utf-8 что ли?
поддерживает конечно,но по умолчанию на русских там koi8-ru стоит,а учитывая повальную чайниковость...

etc 18.12.2008 12:55

Цитата:

Сообщение от scarbo (Сообщение 784608)
поддерживает конечно,но по умолчанию на русских там koi8-ru стоит,а учитывая повальную чайниковость...

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

mff 21.03.2009 18:50

Lionis, спасибо! То что нужно!
Подскажите, как на Action Script проверит валидность введенного email?
Есть регулярка
Код AS1/AS2:

/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/

и
Код AS1/AS2:

/(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/

как применить?

dnisa 21.04.2009 12:52

тоже не отправляется
 
Вложений: 1
Здравствуйте, господа.
таже проблема (письмо не приходит).
ошибку не могу найти... :( (исходники прилагаются)


Часовой пояс GMT +4, время: 13:31.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.