Odbiorcą danych z formularza jest zazwyczaj ten sam lub inny skrypt. Definiuje się to w znaczniku action formularza. U Ciebie jest
co oznacza, że dane odbierze ten sam skrypt. Jak dane mają trafić do innego skryptu (np. analiza.php ), to musisz użyć takiego wpisu
znacznik onsubmit zawiera kod w JavaScript przetwarzający dane formularza - jeśli mają być wysłane, funkcja (tu validate ) zwraca true, a jeśli nie, to false - stosuje się to do walidacji poprawności wprowadzonych danych. Normalnie nie da się wysłać danych z formularza do dwóch skryptów (adresatów) - ale możesz to sam zrobić w tym skrypcie, co odbiera te dane - on wtedy wyśle dodatkowo te otrzymane dane do innego skryptu (metodą GET - jako parametry wywołania - jest to proste, metodą POST nie jest to banalne - można np. użyć bibliotekę cURL). Chyba da się wysłać (nie testowałem tego nigdy, stąd “chyba”) - po stronie klienta - dane do 2 różnych formularzy, ale trzeba trochę kodu w JavaScript - być może zadziała taki kod (umieść go w w funkcji validate() zamiast instrukcji (linii z ) return):
document.form1.submit();
document.form1.action='inny_skrypt.php';
document.form1.submit();
a jeśli to nie zadziała, to trzeba stworzyć drugi formularz (np. form2) z takimi samymi polami, przepisać je i wysłać po wysłaniu tego pierwszego.
Można też to zrobić przy użyciu pływającej ramki (IFRAME) - ale to dłuższy temat i nie będę go rozwijał.
Ok
Na teraz dziękuję za zainteresowanie się tym problemem. Spróbuję przez to przebrnąć.
Chciałbym dodać że w necie znalazłem podobny skrypt który zawierał dodatkowo plik o nazwie
config.php
<?php
// Change the 4 variables below
$yourName = 'Zd-z'; // może być puste
$yourEmail = 'xxxx@wp.pl'; // adres, na który będą przychodzić wiadomości
$yourSubject = 'wiadomość w sprawie|';
$referringPage = 'http://mojastrona.org.au/c/';
?>
Czy chodzi właśnie o ten (lub podobny) dodatkowy plik? I druga prawdopodobna kwestia : Czy w tym pliku można zadeklarować dodatkowych odbiorców maila, czy też należy zrobić coś podobnego do takiego rozwiązania: 1)
-
zmieniamy podobny zapis jak poniżej
echo mail($email, “=?$charset?B?” . base64_encode($subject) . “?=”, $body, $head) ? $message : $error;
na taki 3)
$mails = explode("; ", $email);
for ($i = 0; $i< count($mails); $i++)
echo mail($mails[$i], "=?$charset?B?" . base64_encode($subject) . "?=", $body, $head) ? $message : $error;
jak to “wcisnąć” to tego mojego formularza
pozdrawiam, licząc na odpowiedź
Zdz
@Pablo_Wawa trochę się rozpędziłeś, z tego co ja wyczytałem to pytanie jest o wysłanie do dwóch adresatów, nie skryptów.
Wracając do tematu, to na początek radziłbym @ZhLeliwa byś najpierw co nieco poczytał i z orietował się w temacie za nim coś będziesz chciał nakodzić.
Na razie wyciągasz kawałki kodu na chybił trafił z nadzieją że to może to.
w pierwszym poście masz kompletny szablon formularza z walidacją.
Natomaist w tym kawałku brakuje ci po prostu funkcji która wyśle otrzymane dane.
else{
?>
| Thank you for contacting, we will get back to you within 24 hours or next working day… |
| |
| |
<?php }}?>[/code]
poniżej link gdzie masz wysyłanie maila z użyciem php (drugi listning)
http://webmade.org/porady/wysylanie-wia … il-php.php
oraz pomocne linki na temat funkcji mail.
Wysyłanie do dwóch adresatów - podajesz dwa maila oddzielając je znakiem średnika
Dziękuję grzelix , i Pablo_Wawa , za naprowadzenie na rozwiązanie
Znalazłem też w podanych linkach bardziej “łopatologiczne” wytłumaczenie dodawania drugiego i dalszych odbiorców maila.
Oto one:
// multiple recipients (note the commas)
$to = "somebody@example.com, ";
$to .= "nobody@example.com, ";
$to .= "somebody_else@example.com";
sprawdziłem - działa Pozdrawiam wszystkich życząc spokojnego wieczoru Zdz – Dodane 11.06.2012 (Pn) 12:14 – Witam wszystkich raz jeszcze. Skrypt o którym wspomniałem w pierwszym moim poście działa.Wysyła maile z potrzebnymi polami. Jednak w trakcie walidacji kodu całej strony przy pomocy mozillowskiej Tidy wyskakuje jednak mi błędne umieszczenie skryptu JavaScript który wyprintowywuje komunikat w przypadku błędnego wpisania captcha. Poniżej fragment kodu formularza o którym mowa ( o fragmencie /Error: Kod walidacji/ )
<?php session_start();
if(isset($_REQUEST['Submit']))
{
$name = $_REQUEST['name'];
$email = $_REQUEST['email'];
$comment = $_REQUEST['comment'];
// code for check server side validation
if(empty($_SESSION['6_letters_code'] ) ||
strcasecmp($_SESSION['6_letters_code'], $_POST['6_letters_code']) != 0)
{
//Note: the captcha code is compasuperscript-red case insensitively.
//if you want case sensitive match, update the check above to
// strcmp()
print("");
}else
{
$adresat = "pierwszy@wp.pl, ";
$adresat .= "drugi@wp.pl, "; //pod te adresy zostanie wysłana wiadomosc
@$email = $_POST['email'];
@$comment = $_POST['comment'];
$header = "From:$_POST[name] <$_POST[email]> \nContent-Type:".
' text/plain;charset="iso-8859-2"'.
"\nContent-Transfer-Encoding: 8bit";
//$header .= "Reply-To: webmaster@example.com\r\n";
if (mail($adresat, 'List ze strony', $comment, $header))
echo '
działa';
else
echo '
NIE wysłano maila!';
?>
| Thank you for contacting, we will get back to you within 24 hours or next working day. |
| |
<?php }} ?> [/code]
Cała treść skryptu JavaScript wyświetla się ponad znacznikiem
[code]/code]
I stąd wynika moja prośba: czy można to jakoś wygładzić? Czyli umieścić ten kod JavaScript tak aby walidacja całej strony była poprawna. Proszę o rozwiązanie.
Poza tym mam jeszcze jedną prośbę.
Po wysłaniu maila ukazuje się też na samej górze strony komunikat z tabeli Thank you for contacting, we will get back…
Czy można go jakoś umieścić w dajmy na to “rozsuwanym” (ukrytym normalnie) div-ie ponad samym formularzem?
Strona ma 3 div-y a komunikat wyświetla się w górnej warstwie.
W stosunku do pierwotnego kodu, jaki jest w pierwszym moim poście ten zamieszczony teraz ma wycięty z tabeli input type=“button” value=“Exit”. Czy to ma jakiś wpływ na takie wyświetlanie w walidacji błędu związanego z JavaScript?
Dla mnie wystarczy jak wyświetli sie tylko komunikat o wysłaniu maila “Thank you for contacting…”
Z góry dziękuję za pomoc, i pozdrawiam
Zdz
Dzień dobry… dla wszystkich
Podbiję gnębiący mnie temat ponieważ nie daje mi to spokoju, i uściślę problem kawałkiem wyświetlanego kodu po walidacji tildą. Cały kod formularza znajduje się w pierwszym poście.
[code]