Autor Zpráva
jak
Profil *
Zdravim jde v action volat primo php funkci?
Dekuji za radu
<form action="pokus()" method="post">

function pokus() {

}
jenikkozak
Profil
jak:
Ne. Odeslání na action má na starosti prohlížeč, PHP zpracovává server.
jak
Profil *
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">&nbsp;</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
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 *
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> 
jenze to je pres defaultniho klienta, a to ja nechci

Nemate nekdo jiny tip? dekuji
jak
Profil *
Tak huz jsem neco nasel
http://lastwebdesigner.com/featured/how-to-send-a-mail-with-php-ajax-and-jquery-in-facebook-style.html
candiess
Profil
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 *
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 *
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 *
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 *
Tak uz jsem to vse vyresil, jen je problem v tom kodovani prijate zpravy.
Kde mam prosim hledat problem? Dekuji za radu
Davex
Profil
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: