PDA

Просмотр полной версии : Форма отправки заказа


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
<?
$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 -
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 слой - там где будут располагаться текстовые поля и кнопка для отправки :

вообщем исходники (http://dc45.file.qip.ru/download/67009627/34a72704/E-mail_Flash_form.rar?tsid=20081215-180525-59f4ed23)

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


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

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

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

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

Doping86
17.12.2008, 16:54
Это происходит очень быстро - вы этого не замечаете просто :)
а как сделать, чтобы это было видно?

Mnilionic
17.12.2008, 17:30
убрать из последнего кадра
gotoAndStop("Form");

lexa2000lexa
17.12.2008, 17:40
а как сделать, чтобы это было видно?
поставить задержку
setTimeout(function(){gotoAndStop("Form"),2000})

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

Mnilionic
17.12.2008, 19:21
и не должно приходить. Данные отправляются в космос.
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
наверно есть.

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
скрипт есть, в нем строка
myLoadVars.sendAndLoad();
а в скобках должна быть ссылка куда пересылается это сообщение и откуда оно потом отправляется на почту

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

намёк:
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
С самого начала я отправлял в Вакансии,тогда мой призыв удалили,интересно сейчас поддержат?
Девушка В Вакансии,там все быстро сделают.
это вообще к чему было сказано? :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.
Дальше в КАДР вставьте этот код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<?
$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
поддерживает конечно,но по умолчанию на русских там koi8-ru стоит,а учитывая повальную чайниковость...
Если в письме будет указан заголовок, обозначающий кодировку этого письма, то проблемы никакой не будет.

mff
21.03.2009, 18:50
Lionis, спасибо! То что нужно!
Подскажите, как на Action Script проверит валидность введенного email?
Есть регулярка
/([0-9a-zA-Z]+[-._+&])*[0-9a-zA-Z]+@([-0-9a-zA-Z]+[.])+[a-zA-Z]{2,6}/ и
/(\w|[_.\-])+@((\w|-)+\.)+\w{2,4}+/как применить?

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