21. září bude sraz! Od 18.00 v restauraci Tradice v Praze u Anděla
Autor Zpráva
sea-cob
Profil *
Mám problém s formulářem - jsem si jistá ze delam nejakou trivialni chybu, ale jakozto zacatecnik nejsem schopna ji odhalit. Zdanlive je vsechno v poradku a funguje to...jediny hacek je v tom, ze se to proste neodesle. Predem diky za radu

<html>

<title>Dotaznik</title>
<head>
<script type="text/JavaScript">
function overeni()
{if(document.formular.pohlavi.value=="nic")
{alert("nevyplnili jste údaj o pohlaví"); return false;
document.formular.pohlavi.focus();
}else{alert("děkuji za vyplnění formuláře");
return true;}
}

</script>

</head>
<body>
<form name="formular" action="mailto:nekdo@neco.cz" method="post" onSubmit="return overeni()">
<tr>
<td>otázka:<br></td><td>souhlasím<input type="radio" name="otazka" value="souhlasim">
<br>asi ano<input type="radio" name="otazka" value="asi ano">
<br>asi ne<input type="radio" name="otazka" value="asi ne">
</td>
<td><br><select name="pohlavi" >
<option value="nic"></option>
<option value="muz">muž</option>
<option value="zena">žena</option>
</td>
<br><br><input type="submit" value="odeslat">
<input type="reset" value="vymazat">
</form>

</body>
</html>
Marty
Profil
Toto fungovat nemůže, maximálně se otevře poštovní klient. Je to dělaný jen přes js a html. Pro odeslání na určený e-mail je potřeba použít nějakého skriptovacího jazyka(PHP, ASP).
sea-cob
Profil *
Tak jiná možnost, ale při výběru nadávek berte prosím ohled na to, že php neumim:-)
Předělala jsem původní html a přidala jsem dokument odesli.php
Mohli byste mi poradit, zda je to aspoň částečně správně, nebo se to už víc zkopat nedá?


<!--stránka html-->


<html>

<title>Dotaznik</title>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<script type="text/JavaScript">
function overeni()
{if(document.formular.pohlavi.value=="nic")
{alert("nevyplnili jste údaj o pohlaví"); return false;
document.formular.pohlavi.focus();
}else{
return true;}
}

</script>

</head>
<body>
<form name="formular" action="odesli.php" method="post" onSubmit="return overeni()">
<tr>
<td>otázka:<br></td><td>souhlasím<input type="radio" name="otazka" value="souhlasim">
<br>asi ano<input type="radio" name="otazka" value="asi ano">
<br>asi ne<input type="radio" name="otazka" value="asi ne">
</td>
<td><br><select name="pohlavi" >
<option value="nic"></option>
<option value="muz">muž</option>
<option value="zena">žena</option>
</td>
<br><br><input type="submit" value="odeslat">
<input type="reset" value="vymazat">
</form>

</body>
</html>


<!--stránka odesli.php-->


<?php
Mail ("nekdo@neco.cz", $pohlavi, $otazka);
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>odeslání e-mailu</title>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<center><font face="Arial CE, Arial" size="5">
Váš vzkaz byl odeslán.
</font></center>
</body>

</html>
habendorf
Profil
sea-cob: Já jsem zkoušel tu původní variantu a řekl bych že je funkční. Za chvíli se mi to vrátilo jako nedoručitelné (samozřejmě při té adrese) - a to znamená, že se to pokoušelo odeslat.

Hi. This is the qmail-send program at smtp.seznam.cz.
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

<nekdo@neco.cz>:
80.188.162.115 does not like recipient.
Remote host said: 550 <nekdo@neco.cz>: Recipient address rejected: User unknown in virtual alias table
Giving up on 80.188.162.115.
sea-cob
Profil *
no, po mě to vždycky chtělo něco přes outlook, který nepoužívám. Pak jsem někde našla, že "mailto" se opravdu vztahuje k outlooku, ale funkce mail() ho nevyžaduje...
Marty
Profil
První varianta bude opravdu vždy vyžadovat poštovního klienta. To ale nemusí mít každý nastaveno.
Proto je lepší použít tu druhou variantu, která je funkční na všech serverech podporující php skripty.
habendorf
Profil
Myslím že mailto se nevztahuje k Outlooku, ale obecně k mailovému klientovi - čili záleží na uživateli, jakého klienta má nastaven jako primární. Nicméně bez klienta se mailto samozřejmě neobejde. Řešení jsou (minimálně) dvě:

1) napsat si vlastní serverový skript, nebo
2) využít nějakých vzdálených sluřeb, třeba http://www.freeweby.iglu.cz/mailform.php
Fred
Profil
K původnímu dotazu, upřesni neodešle, jestli myslíš že se nodešlou data z toho formuláře, tak to se neodešlou, protože to by jsi musel buď použít serverový script, nebo ty data předat javascriptem do subjectu. Tady se zkus inspirovat http://javascript.internet.com/forms/anywhere-mail.html tedy

action="mailto:nekdo@neco.cz?subject='+xxx+'"

xxx jsou data z formuláře.

BTW nemám rád když se mi otevírá mailový klient.
sea_cob
Profil
Tak, teď jsem to udělala přes službu mailform a dokonce se mi pošle mail, nicméně neobsahuje žádná data. Přístupný je to na: www.sea-cob.wz.cz

Už mi z toho začíná hrabat...:-)
sea_cob
Profil
Jinými slovy: nevíte jak mám do toho mailu dostat potřebná data (vytvořit si pro každou hodnotu odpovídající proměnnou a tu tam pak nějak začlenit??) ? Díky
Fred
Profil
To záleží na tom scriptu co to do něj posíláš, co to máš prosím tě za službu mailform ?? Jestli je to to, kam to odesíláš: stav.webz.cz/mailform/odesli.php tak to se mi zrovna moc nezdá.
habendorf
Profil
Fred: Stavův mailform je v pohodě. Ale třeba jsou i lepší.
sea_cob
Profil
no jo, jenomže já naprosto nevim, jak jinak to udělat - můžu sem hodit znova zdroják toho formuláře, ale je to dost dlouhý, tak jsem to zpřístupnila na www.sea-cob.wz.cz
btw. vzhledově je to hodně chabý a nedodělaný, ale mě jde teď o to poslání dat...
habendorf
Profil
No to ani chodit nemůže. Není to určeno pro odesílání strukturovaných formulářových dat - to by sis musela nějak prvně všechny ty hodnoty vyzobat pomocí JS a spojit si je do hlavičky nebo těla zprávy.
A návratovou stránku si nedávej sea-cob/odesli.php, to pak vlastně dubluješ tím svým skriptem.
sea_cob
Profil
Přátelé, všem vám děkuji ze pomoc - podařilo se mi to nakonec uskutečnit pomocí funkce mail(). Vaše spolupráce byla k nezaplacení :-)
Toto téma je uzamčeno. Odpověď nelze zaslat.

0