|
SWiSH Forum Forum użytkowników programów SWiSH |
 |
SWiSH Max - formularz, problem ze zmiennymi
kosecki - Sro 15 Mar, 2006 19:11 Temat postu: formularz, problem ze zmiennymi Witam,
mam problem z formularzem pisanym w swishmax. korzystalem z zawartego gdzies na forum przykladowego skryptu. Ogolnie problem jest w tym ze pola z ktorych chce pobrac wartosc do pozniejszego przeslania sa zagniezdzone tzn. np
pole email jest _root.formularz.form.mail__.email
w skrypcie w ktorym to dziala urzywane jest emailVar itd
Niestety u mnie zmienne nie sa widoczne (pola input text sa target).
Czy ktos mial taki problem. Prosze o pomoc.
K.
ps. w zalaczniku projekt formularza
galechus - Sro 15 Mar, 2006 19:59
Witaj, nie bardzo rozumiem..., ale pokaże Ci to na przykładzie.
To jest kawałek kodu z formularza, który jest podpięty pod button WYŚLIJ, tutaj pobiera dane.
Kod: |
Email = _root.formularz.form.mail__.Email;
Message1 = _root.formularz.form.mail__.Message1;
Name = _root.formularz.form.mail__.Name;
Status = "";
loadVariablesNum("email.php",0,'POST');
|
Pamiętaj, że na polach (input) musisz mieć zaznaczoną opcję TARGET i dla każdego pola musisz mieć wpisana nazwe zmiennej, czyli u Nas będzie to:
dla polaemail zmienna (varaiable): Email
dla pola wiadomośc zmienna (varaiable): Message1
dla pola imię zmienna (varaiable): Name
to wszystko co powinieneś zrobić w swish'u, natomiast skrypt php powinien wyglądać tak:
Kod: |
<?php
$message1 = $HTTP_POST_VARS['Message1'];
$name = $HTTP_POST_VARS['Name'];
$email = $HTTP_POST_VARS['Email'];
$name = stripslashes($name);
$email = stripslashes($email);
$message1 = stripslashes($message1);
$rec_email = "jakis@email.pl";
$subject = "jakis temat";
$msg_body = "List od $SERVER_NAME\n";
$msg_body .= "*****************************************\n";
$msg_body .= "IMIĘ I NAZWISKO: $name\n";
$msg_body .= "E-MAIL: $email\n";
$msg_body .= "OPIS: $message1\n";
$msg_body .= "*****************************************\n";
$msg_body .= "\n\n";
$msg_body .= "Dodatkowe informacje\n";
$msg_body .= "*****************************************\n";
$msg_body .= "IP Address: $REMOTE_ADDR\n";
$HostName = gethostbyaddr($_SERVER['REMOTE_ADDR']);
$msg_body .= "Host: $HostName\n";
$msg_body .= "User Agent: $HTTP_USER_AGENT\n";
$msg_body .= "*****************************************\n";
// Add Some Extra Header Information to the Mail
$header_info = "From: ".$name." <".$email.">";
// Now let's take the information above and mail it to the recipient
mail($rec_email, $subject, $msg_body, $header_info);
?>
|
Mam nadzieję, że w jakiś sposób Ci pomogłem.
kosecki - Czw 16 Mar, 2006 16:18
po pierwsze dzieki za odpowiedz.
druga sprawa:
trzeba dodac wlasnosc pola .text zeby zczytac wartosc
Email = _root.formularz.form.Email.text; czyli pole input email przekazujemy do zmiennej email.
natomiast gdy chce wyczyscic dane pole formularza (przyc czysc) powinnienem uzyc
_root.formularz.form.Email.text = "";
niestety nie skutkuje, tzn pole formularza jakby na chwile sie czyscilo i z powrotem wraca text (mozna zaobserwowac migniecie).
buber - Czw 16 Mar, 2006 16:42
troche tego tam masz;] po pierwsze zrob tam porzadek i lecimy dalej
kliknij np na pole zastosowania ma name"namepusty" zaznaczony target w opcji pola tekstowego advance nazwa zmiennej nameVar.
wiec nie patrzysz na nazwe pola tylko na nazwe zmiennej w celu wyczyszczenia pola uzylbys w tym momencie _root.formularz.form.nameVar=""; (a nie ....namepusty.text)
zobacz poza tym w polach innych masz wszedzie ta sama zmienna przypisana do pol subjectVar (chyba ze to celowo)
kosecki - Czw 16 Mar, 2006 17:05
To ze jest balagan to wiem, ale to nie o to sie rozchodzi.
powiedzmy ze odpowiednio sa po nazywane pola i zmienne odnoszace sie tez.
korzystam w ten sposob
dla pola
_root.formularz.form.zast <pole input, target zaznaczone
w przycisku wyczysc uzywam
_root.formularz.form.zastVar = ""; <efektu brak, jesli chodzi o moj formularz. Jesli natomiast przerzuce do innego pliku i to zastosuje, jest ok.
natomiast jesli dla wczytania zmiennej dam
np:
zastosowanie = _root.formularz.form.zast.text;
a potem
trace(zastosowanie); <czyli wyrzucenie do debug wart zmiennej zastosowanie to jest ok.
Wydawalo mi sie z element
_root.formularz.form.zast.text;
ma mozliwosc zapisu i odczytu. Jednak dla
_root.formularz.form.zast.text = ""; nie ma efektu.
Wydaje mi sie ze chodzi o ilosc spritow/grup w ktorych jest docelowy element. Jesli uproscimy wszystko to jest ok. Natomiast tutaj musze miec kilka poziomow zagniezdzen gdyz jest scroll.
buber - Czw 16 Mar, 2006 17:30
"Zobacz na wyslij i wyczysc (te na samej gorze hierarchii)"
no jak zrobisz pod wyczysc to to kasuje w twoim przypadku
on (press) {
_root.formularz.form.nameVar = "";
_root.formularz.form.emailVar = "";
_root.formularz.form.subjectVar = "";
}
to niewazne ile masz sprajtow itd jezeli masz zmienna przypisana polu tekstowemu to olej odwolywanie sie przez .text
inaczej jakie jest twoje pytanie w ogole hehe;]
kosecki - Czw 16 Mar, 2006 17:52
Dobra juz wiem.
Nie zauwazylem zakladki advanced w polu text i pola Variable. Probelem rozwiazany, dzieki wielkie.
|
|