| Autor | Zpráva | ||
|---|---|---|---|
| jak Profil * |
#1 · Zasláno: 19. 1. 2012, 12:03:11 · Upravil/a: Moderátor (editace znemožněna) 21. 1. 2012, 22:09:40
Zdravim jde v action volat primo php funkci?
Dekuji za radu <form action="pokus()" method="post">
function pokus() {
} |
||
| jenikkozak Profil |
#2 · Zasláno: 19. 1. 2012, 12:17:08
jak:
Ne. Odeslání na action má na starosti prohlížeč, PHP zpracovává server. |
||
| jak Profil * |
#3 · Zasláno: 19. 1. 2012, 15:02:56 · Upravil/a: Moderátor (editace znemožněna) 21. 1. 2012, 22:09:33
aha, takze jde např. provest odeslani, aniz by se pote znovunacitalo obsah okna prohlizece, ale se jen vynulovaly hodnoty v input.? viz. z prikladu, nebo to je lepsi provest pomoci js
<form action="test.php" method="post"> <table width="400" border="0" cellspacing="2" cellpadding="0"> <tr> <td width="29%" class="bodytext">Your name:</td> <td width="71%"><input name="name" type="text" id="name" size="32"></td> </tr> <tr> <td class="bodytext">Email address:</td> <td><input name="email" type="text" id="email" size="32"></td> </tr> <tr> <td class="bodytext">Comment:</td> <td><textarea name="comment" cols="45" rows="6" id="comment" class="bodytext"></textarea></td> </tr> <tr> <td class="bodytext"> </td> <td align="left" valign="top"><input type="submit" name="Submit" value="Send"></td> </tr> </table> </form> <?php
$ToEmail = 'youremail@site.com';
$EmailSubject = 'Site contact form ';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["name"]."<br>";
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>";
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>";
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?> |
||
| jenikkozak Profil |
#4 · Zasláno: 19. 1. 2012, 15:13:34
jak:
„aha, takze jde např. provest odeslani, aniz by se pote znovunacitalo obsah okna prohlizece, ale se jen vynulovaly hodnoty v input.?“ Vždyť jsem napsal, že to nejde. „viz. z prikladu, nebo to je lepsi provest pomoci js“ Jo, to bude lepší. |
||
| jak Profil * |
#5 · Zasláno: 19. 1. 2012, 15:28:38 · Upravil/a: jak
Tak dekuji za radu, jinak bych patral a hledal co nejde..
Dik No jo, hledam, ale najak nemohu nalez odesilani emailu pres js Resp. <script language="javascript">
function mailpage()
{
mail_str = "mailto:?subject=Check out the " + document.title;
mail_str += "&body=I thought you might be interested in the " + document.title;
mail_str += ". You can view it at, " + location.href;
location.href = mail_str;
}
</script> Nemate nekdo jiny tip? dekuji |
||
| jak Profil * |
#6 · Zasláno: 19. 1. 2012, 16:35:15
|
||
| candiess Profil |
#7 · Zasláno: 19. 1. 2012, 19:10:31
jenikkozak:
„Vždyť jsem napsal, že to nejde.“ Coto povídáš za nesmysly?? Ajax?? jak: Jasně že to jde, přečti si něco o AJAXU a nebo o jejím novějším kamarádovi, knihovně JQuery Formuláři nastavíš onsubmit="return false" a odesílacímu tlačítku nastavíš po kliknutí událost <button onclick="odesli()">Odeslat data</button> function odesli() { //vem data z inputu //posli je na skript přes $.post(); //to je JQuery f-ce //vynuluj hodnoty v inputech //případně hod alert že to bylo odesláno } |
||
| jenikkozak Profil |
candiess:
„Coto povídáš za nesmysly?? Ajax??“ Trvám na tom, že to v PHP udělat nejde. A zároveň neměním názor na to, že v JS to jde. A ten tvůj dvojotazníkový Ajax je metodou JS. Než budeš vyprávět o povídání nesmyslů, přečti si prosím konverzaci, na kterou daný člověk reaguje. (V kategorii PHP se ptá, zda to udělat jde, nebo jestli je lepší JS) |
||
| jak Profil * |
#9 · Zasláno: 21. 1. 2012, 20:43:01
Panove, me to je celkem jedno v cem to bude, jde me o odeslani zpravy aniz by dochazelo k znovunacteni stranky a zadavaci formular se jen ukryl, neco jsem nasel (viz.odkaz vyse) a celkem jsem to rozchodil, jen ted trochu bojuji s kodovanim:
vlastni stranku mam charset=cp1250 aby jse me stav odeslani zobrazil spravne a ne v utf-8, musel jsem pridat do mail.php header (pote se text v "#response zobrazil spravne) Problem je, ze text emailu dojde v utf-8 Prosim, jak udelat, co kde pridat, aby dosel ve 1250? Dekuji za radu, prosim jsem zacatecnik, takze predevsim hledam co a jak udelat, jinak toto funguje dle me predstavy... ajax.js function SendMail($name, $mail, $subject, $text) {
var valid = '';
var isr = ' požadován(o).';
var name = $name;
var mail = $mail;
var subject = $subject;
var text = $text;
if (name.length<1) {
valid += 'Jméno'+isr;
}
if (!mail.match(/^([a-z0-9._-]+@[a-z0-9._-]+\.[a-z]{2,4}$)/i)) {
valid += 'Email'+isr;
}
if (subject.length<1) {
valid += ' Subjekt'+isr;
}
if (text.length<1) {
valid += 'Text'+isr;
}
if (valid!='') {
$("#response").fadeIn("slow");
$("#response").html("Chyba: "+valid);
setTimeout('$("#response").fadeOut("slow")',4000);
}
else {
var datastr ='name=' + name + '&mail=' + mail + '&subject=' + subject + '&text=' + text;
$("#response").css("display", "block");
$("#response").html("Odesílám zprávu .... ");
$("#response").fadeIn("slow");
setTimeout("send('"+datastr+"')",2000);
return true;
}
return false;
}
function send(datastr){
$.ajax({
type: "POST",
url: "mail.php",
data: datastr,
cache: false,
success: function(html){
$("#response").fadeIn("slow");
$("#response").html(html);
setTimeout('$("#response").fadeOut("slow")',2000);
}
});
}mail. php <?php
header("Content-Type: text/html; charset=cp1250");
$mail = $_POST['mail'];
$name = $_POST['name'];
$subject = $_POST['subject'];
$text = $_POST['text'];
$to = "mail@xxx.cz";
if(mail($to, $subject, $text)){
echo "zpráva úspěšně odeslána";
}
else{
echo "chyba při odesílání<br />zpráva neodeslána";
}
?> |
||
| jak Profil * |
#10 · Zasláno: 21. 1. 2012, 21:54:43
No, byl jsem spokojen predcasne, jak jsem do mail.php pridal header("Content-Type: text/html; charset=cp1250");
tak jako by se v js neprovedlo setTimeout('$("#response").fadeOut("slow")',2000); proste tam zustane trcet #response s napisem Odesilam zpravu... a nic se nedeje kdyz header odstranim, tak se hatatilkou ukaze text zprava uspesne odeslana a #response zmizi.. Tak jsem z toho blazen, cim to je? |
||
| jak Profil * |
#11 · Zasláno: 22. 1. 2012, 07:17:06
Tak jsem toho opravdu zmateny, ve FF to i s header("Content-Type: text/html; charset=cp1250"); pracuje spravne
ale v IE zustava trcet okno Odesilam zpravu... a nic se nedeje, odtranim-li header, funguje to i v IE Prosim, mohl by me nekdo osvetlit, cim to je? Moc dekuji za radu |
||
| jak Profil * |
#12 · Zasláno: 22. 1. 2012, 14:03:45
Tak uz jsem to vse vyresil, jen je problem v tom kodovani prijate zpravy.
Kde mam prosim hledat problem? Dekuji za radu |
||
| Davex Profil |
#13 · Zasláno: 22. 1. 2012, 17:47:27
Mělo by se definovat kódování v MIME hlavičce e-mailu. Můžeš rovnou použít funkci
cs_mail() z PHP FAQ.
|
||
|
Časová prodleva: 14 let
|
|||
0