to moje pierwsze wykorzystanie ajax w formularzach, w zasadzie przypadek jest błahy ale chodzi tu raczej o aspekty edukacyjne
celem jest pokazania na stronie komunikatu zwróconego przez skrypt php zamiast formularza - czyli podmiana zawartosci div-a o id = "wynik". Narazie niestety wszystkie komunikaty pojawiaja sie na czystej stronie zamiast w pliku .html
oto kod
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<meta http-equiv="Content-Language" content="pl"> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2"> <link rel="stylesheet" href="style.css" type="text/css">
<script type="text/javascript">
advAJAX.assign(document.getElementById("the_form"), {
onSuccess : function(obj) {
var element = document.getElementById("wynik");
element.innerHTML = obj.responseText;
}
});
<p class="para">Czekam na pytania, uwagi, sugestie dot. strony i Isengard.';
<form action="send.php" method="post" id ="the_form"> <table cellspacing="0" cellpadding="1" border="0" align="center" width="95%"> <td width="20%" valign="bottom" nowrap> <p align="right" class="para">temat:
</p> <td width="80%" align="left"> <input type="text" size="30" maxlength="50" name="temat" style="width:200px;"> <td width="20%" valign="bottom" nowrap> <p align="right" class="para">e-mail nadawcy:
</p> <td width="80%" align="left"> <input type="text" size="30" maxlength="50" name="email" style="width:200px;"> <td width="20%" valign="bottom" nowrap class="underline"> <td width="80%" align="left" class="underline"> <td align="center" colspan="2"> <input type="submit" value="wyślij" name="submit"> <INPUT TYPE="reset" VALUE="wyczyść">
<p class="para" align="left"> <a href="java script:window.close();" class="genmed">Zamknij Okno
</a></p>
<?php
#Pobieranie adresu IP
$ip=$_SERVER['REMOTE_ADDR'];
#Pobieranie serwera
$host=gethostbyaddr($ip);
#Pobieranie adresu strony
$document=$_SERVER['HTTP_REFERER'];
# temat
if (empty($_POST['temat'])) { $te = FALSE;
$message .= 'Zapomniałeś podać temat wiadomości.';
$bg[1] = ' background-color: #C0C0C0; color: black';
} else {
$te = $_POST['temat'];
}
# e-mail
if ( !(strstr($_POST['email'], '@')) || strlen($_POST['email'])<6
) { $em = FALSE;
$message .= 'Popraw swój adres e-mail.';
$bg[2] = ' background-color: #C0C0C0; color: black';
} else {
$em = $_POST['email'];
}
# tresc
if (empty($_POST['tresc'])) { $tr = FALSE;
$message .= 'Zapomniałeś podać treść wiadomości.';
$bg[3] = ' background-color: #C0C0C0; color: black';
} else {
$tr = $_POST['tresc'];
}
if ($te && $em && $tr) {
$wiadomosc = "
Wiadomość od $em: <br/><br/>
$tr <br/><br/>
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- <br/>
IP nadawcy: $ip <br/>
HOST nadawcy: $host <br/>
wysłano z: $document <br/>
";
$naglowki = "MIME-Version: 1.0rn";
$naglowki .= "Content-type: text/html; charset=iso-8859-2rn";
$naglowki .= "From: $emrn";
if ( mail('moj@email.pl',$te,$wiadomosc,$naglowki) ) { echo '<div align="center"><p class="para"><b>Wiadomość wysłana.</b></p></div>'; } else { echo 'Wiadomość nie mogła zostać wysłana z przyczyn technicznych.'; }
} else {
echo '<div align="center"><p class="error">'; }
echo '<br><b>Spróbuj jeszcze raz.</b>'; }
?>
a to link jak to obecnie działa:
Ten post edytował hhg 28.08.2007, 00:14:08