Autor | Zpráva | ||
---|---|---|---|
novacek90 Profil |
#1 · Zasláno: 29. 8. 2012, 13:20:36
Ahoj,
chtěl bych se zeptat, jestli je nějaká možnost zobrazení výsledku PHP pomocí javasriptu nebo nějak. Jde mi o to že mám formulář a výsledky php skriptu (vyhodnocení formuláře) mi vypisuje v jiné stránce a pak mám refresh na stránku kde mám formulář ale chtěl bych to udělat nějak abych nemusel dávat ten refresh, ať již kvůli tomu, abych udržel uživatele déle u sebe na stránce, nebo ergonomii stránek jelikož pokud mu tam vypíšu stránku s chybou a dám mu refresh, tak musí opět zadávat všechna pole apod. <?php .... function JeEmail ($cislo) { return ereg("^.+@.+\..+$",$cislo); } $BudemeZobrazovat=true; if (!empty($_POST)) // tak už se odesílalo a musíme kontolovat { if (!JeEmail($_POST["mail_addr"])) { // kontrolou jsme neprošli echo "Prosím zadejte platný e-mail!"; } else { // kontolou jsme prošli $odeslani = mail($address,$subject,$message,$headers); if ($odeslani) { // pokud se mail úspěšně odeslal echo '<br />Mail byl odeslán. Pro pokračování jděte na <a href="http://www.adresa.cz">www.adresa.cz</a>'; } } } header("Refresh: 5; url=http://www.adresa.cz/podstranka"); ?> A teď mi jde o to jestli se dá nějak udělat to, že např. echo "Prosím zadejte platný e-mail!"; Díky moc za rady Milan |
||
Šéva Profil |
Ahoj,
pro kontrolu údajů bych asi použil funkci onchange onChange=\"kontrola(this.value)\" a následně něco jako
<script> function kontrola(promenna) { podminka... alert("Není splněna podmínka"); } </script> nebo pokud nechceš použít alert, tak to můžes ješte udělat třeba takto <script> function kontrola() { if(podminka!=podminka) { document.getElementById('div_01').style.display = 'block'; return(false); } } </script> <p id='div_01' style='display: none;color:red;' width='100%'><b>Nějaká hláška</b></p> //nějaký formulář s onchange |
||
novacek90 Profil |
#3 · Zasláno: 30. 8. 2012, 10:36:13
Ahoj, dík za radu použil jsem alert vše mi funguje.
Na ten onchange ještě kouknu ;) |
||
novacek90 Profil |
#4 · Zasláno: 31. 8. 2012, 00:06:51
Ahoj hele teď sem narazil na chybu.
Vytvořil sem si javascriptovou kontrolu a pak přesměruju na php skript pro odeslání. Když se mi vypíše že mail byl odeslán tak nic nepřijde. <script> function validate(formular) { if(formular.velikost_a.value=="") { alert ("Vyplňte prosím velikost A."); formular.velikost_a.focus(); return false; } if(formular.velikost_b.value=="") { alert ("Vyplňte prosím velikost B."); formular.velikost_b.focus(); return false; } if(formular.velikost_c.value=="") { alert ("Vyplňte prosím velikost C."); formular.velikost_c.focus(); return false; } if(formular.velikost_d.value=="") { alert ("Vyplňte prosím velikost D."); formular.velikost_d.focus(); return false; } if(formular.jmeno.value=="") { alert ("Vyplňte prosím své jméno."); formular.jmeno.focus(); return false; } if(formular.mail_addr.value=="" || zkontroluj_email(formular.mail_addr.value)==false) { alert ("Nezadali jste svůj e-mail nebo je ve špatném tvaru."); formular.email.focus(); return false; } return true; } function zkontroluj_email(adresa) { re = /^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$/; return adresa.search(re) == 0; } </script> propojuju je <form action="vyhodnoceni.php" method="post" name="formular" onSubmit="return validate(this);"> <?php začátek skriptu .... $odeslani = mail($email,$predmet,$text,$hlavicka); if ($odeslani) { // pokud se mail úspěšně odeslal echo '<br />Mail byl odeslán.'; } ?> jde mi o to, že když kontroluju např. velikost A, jestli je v ní nějaká hodnota, tak vše funguje vypíše mi hlášku že není hodnota, ale když kontroluju mail, tak je tu chybka když nechám pole s e-mailem prázdné, tak mi vypíše hlášku že není vyplněno ale i tak mi to přesměruje na ten php skript a napíše odesláno a když vyplním mail, tak mě přesměruje na php skript a vypíše mi hlášku o odeslání. Ale ani v jednom případě mi mail nedojde. S javascriptem si moc netikám a s php sem začátečník tak nevím, kde dělám chybu Díky za radu |
||
Šéva Profil |
novacek90:
S JS si taky moc netykam, nicméně u toho JS nad začátkem té druhé funkce más return true; a nemáš to v žádné podmínce, což znamená, že ti to ten formulář odešle pokaždé nehledě na to, zda byly podmínky splněny nebo ne... chtěo by to trošku předělat ty podmínky
|
||
jenikkozak Profil |
#6 · Zasláno: 31. 8. 2012, 16:52:51
Šéva:
„nicméně u toho JS nad začátkem té druhé funkce más return true; a nemáš to v žádné podmínce, což znamená, že ti to ten formulář odešle pokaždé nehledě na to, zda byly podmínky splněny nebo ne... chtěo by to trošku předělat ty podmínky“ To není pravda. Funguje to podobně jako v PHP, kdy příkaz return vrací hodnotu a ukončuje funkci.
Zjednodušeně: function funkce(promenna){ if(promenna=="hodnota"){ return false; //rovná-li se obsah proměnné „hodnotě“, vrátí funkce false, dále se neprovádí } return true; //sem se dostane funkce jen v případě, že výše nevrátila false, teď vrátí true, dál se neprovádí alert("ukončeno"); //sem se funkce nedostane } novacek90: Ve skriptu máš asi chybně název položky formuláře na 37.řádku. Má to být email , nebo mail_addr ?
K tomu, proč se ti e-mail neodesílá, se dá jen tipnout. Nespoléháš na zapnuté register globals? |
||
novacek90 Profil |
A jo chybka má to být mail_addr. Poupravil jsem podmínky postupně a už vše funguje pak taky pár úprav v php a funguje jak má. díky za rady ;)
|
||
Časová prodleva: 12 let
|
0