Olis tällänen ongelma.
koodissa oleva palautteen saaja valintaboxin toiminta pitäis saada jotenkin toimimaan.
Eli kun valitsee palautteen saajan niin valintakohde (myymälä tai varasto...) menee tarkastuksessa läpi, mutta kun alkaa täyttämään nimi
kenttää ja painaa nimen kirjoittamisen jälkeen "Lähetä palaute" submit nappulaa niin palautteen saajan valintakohde palautuu alkuarvoonsa (valitse palautteen saaja).
Onko olemassa mitään helppoa ratkaisua tähän kyseiseen ongelmaan.
Sama teksti postattu myös mureakuhaan...
<html> <head> <title>Palautelomake</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <style type="text/css"> body { font-family: Arial, Helvetica, sans-serif; font-size: 12px; } .box { font-family: Arial, Helvetica, sans-serif; font-size: 12px; border: 1px solid #000000; } .bluebox { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bolder; color: #FFFFFF; background-color: #006699; border: 1px solid #000000; } .maincell { font-family: Arial, Helvetica, sans-serif; font-size: 12px; padding: 5px; } .errmsg { font-family: "Courier New", Courier, mono; font-size: 12px; font-weight: bolder; color: #CC0000; } </style> </head> <body> <?php $Virheviesti = ''; // Virheviesti $Nimi = ''; // lahettajan nimi $email = ''; // lahettajan email osoite $Valinta = ''; // Viesti Otsikko $Viesti = ''; // Viesti $Otsikko = 'Palautteen otsikko'; //Viesti if(isset($_POST['send'])) { $Valinta = $_POST['Valinta']; $Nimi = $_POST['Nimi']; $email = $_POST['email']; $Viesti = $_POST['Viesti']; //tarkastetaan lomakkeen kentat if(trim($Valinta) == '') { //jos kentta tyhja, tulostetaan virheviesti $Virheviesti = 'Anna palautteen saaja'; } else if(trim($Nimi) == '') { //jos kentta tyhja, tulostetaan virheviesti $Virheviesti = 'Nimi puuttuu'; } else if(trim($email) == '') { //jos kentta tyhja, tulostetaan virheviesti $Virheviesti = 'Email osoite puuttuu'; } // ajetaan functio isEmail else if(!isEmail($email)) { //jos vaara email osoite, tulostetaan virheviesti $Virheviesti = 'Email osoite on virheellinen, korjaa osoite.'; } else if(trim($Viesti) == '') { //jos kentta tyhja, tulostetaan virheviesti $Virheviesti = 'Kirjoita viestikenttään palautteesi'; } if($Virheviesti == '') { if(get_magic_quotes_gpc()) { $Otsikko = stripslashes($Otsikko); $Viesti = stripslashes($Viesti); } //********************************************************************* // annetaan formin valinta osaan arvo if (intval($_REQUEST[Valinta]) == 1) { $Otsikko = "Myymala"; $to = "matti.myymalapaallikko@kotisivu.fi"; } // annetaan formin valinta osaan arvo elseif (intval($_REQUEST[Valinta]) == 2) { $Otsikko = "Varasto"; $to = "matti.varastomies@kotisivu.fi"; } // annetaan formin valinta osaan arvo elseif (intval($_REQUEST[Valinta]) == 3) { $Otsikko = "Toimitusjohtaja"; $to = "matti.toimitusjohtaja@kotisivu.fi"; } //*********************************************************************** // email Otsikko $Otsikko = '[Palaute] : ' . $Otsikko; // Viestikenttaan tulevat tiedot $msg = "Palautteen antaja: $Nimi \r\n"."Sähköpostiosoite: $email \r\n"."Viesti:\r\n".$Viesti; mail($to, $Otsikko, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n"); ?> <div align="left">Palautteesi on lähetetty . Klikkaa <a href="index.php">tästä</a> päästäksesi takaisin etusivulle <?php } } if(!isset($_POST['send']) || $Virheviesti != '') { ?> </div> <div class="errmsg" align="center"><?=$Virheviesti;?></div> <form method="post" name="msgform" id="msgform"> <table width="440" border="0" align="left" cellpadding="2" cellspacing="1" class="maincell"> <tr> <td width="134" align="right"><strong>Palautteen saaja:</strong></td> <td width="295"> <select name="Valinta" size="1"> <option value="<?=$Valinta;?>">Valitse palautteen saaja</option> <option value="1">- Myymälä</option> <option value="2">- Varasto</option> <option value="3">- Toimitusjohtaja</option> </select> </td> </tr> <tr> <td width="134" align="right"><strong>Nimesi:</strong></td> <td><input name="Nimi" type="text" class="box" id="Nimi" size="30" value="<?=$Nimi;?>"></td> </tr> <tr> <td width="134" align="right"><strong>Email:</strong></td> <td><input name="email" type="text" class="box" id="email" size="30" value="<?=$email;?>"></td> </tr> <tr> <td width="134" align="right" valign="top"><strong>Viesti:</strong></td> <td><textarea name="Viesti" cols="40" rows="10" wrap="OFF" class="box" id="Viesti"><?=$Viesti;?></textarea></td> </tr> <tr align="center"> <td colspan="2"><input name="send" type="submit" class="bluebox" id="send" value="Lähetä Palaute" onclick="return checkForm();"></td> </tr> <tr align="center"> <td colspan="2"> </td> </tr> <tr align="left"> <td colspan="2"></td> </tr> </table> </form> <?php } function isEmail($email) { return(preg_match( "/^[-_.[:alnum:]]+@((([[:alnum:]]|". "[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+". "(ad|ae|aero|af|ag|ai|al|am|an|ao|aq". "|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf". "|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw". "|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co". "|com|coop|cr|cs|cu|cv|cx|cy|cz|de". "|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er". "|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh". "|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu". "|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int". "|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp". "|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls". "|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn". "|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz". "|na|name|nc|ne|net|nf|ng|ni|nl|no|np". "|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn". "|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh". "|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy". "|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv". "|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn". "|vu|wf|ws|ye|yt|yu|za|zm|zw)$". "|(([0-9][0-9]?|[0-1][0-9][0-9]". "|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?". "|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i" ,$email)); } ?> </body> </html>
(Mod. edit: kooditagit ja toinen edit: vähän rajaa niiden rivien pituudessa.)
Jos ymmärsin ongelman oikein, vikana on se, että pudotusvalikot eivät vain toimi noin. Vaihdapa tähän
<select name="Valinta" size="1"> <option>Valitse palautteen saaja</option> <option value="1"<?php if($_POST["Valinta"] == "1") echo " selected"; ?>>- Myymälä</option> <option value="2"<?php if($_POST["Valinta"] == "2") echo " selected"; ?>>- Varasto</option> <option value="3"<?php if($_POST["Valinta"] == "3") echo " selected"; ?>>- Toimitusjohtaja</option> </select>
Lisäksi, käytä aina koodi-tagia, kun laitat koodejasi. Tai pastea ne johonkin.
Tykkään ite kirjottaa selected="selected" valitulle optionille, vaikkakaan tuo arvo ei näköjään speksin mukaan olekaan pakollinen.
Cornix kirjoitti:
Tykkään ite kirjottaa selected="selected" valitulle optionille, vaikkakaan tuo arvo ei näköjään speksin mukaan olekaan pakollinen.
HTML speksi sallii melkein mitä vain, mutta XHTML speksi vaatii sekä attribuutin nimen, että arvon: http://www.w3.org/TR/xhtml1/#h-4.5
No kyseessä näyttää silti olevan HTML 4.01 (validaattorin mielestä ainakin), koska muuta ei ole määritelty. Itse aina supistelen noita, koska pelkään vaakatason skrollauspalkkeja.
[mutu]Eikö tuolle selectedille voi kuitenkin antaa arvoksi mitä tahansa, eli ei tarvitse ihan niin pitkästi kirjoittaa kuin selected="selected" ?[/mutu]
Ei vaakatason skrolleja voi ilmestyä tagien attribuuttien tai niiden arvojen takia. Ainoastaan näkyvä sisältö voi venyttää ulkoasua - taulukkotaitossa.
Ehkä SysRq868 tarkoitti koodieditorinsa palkkeja. (Tosin siinäkin voi varmana jakaa hötömölön useammalle riville)
Niin tarkoitin. Ja voi, mutta silloin kun tulee jotain PHP:llä kirjoitettua pitkiäkin pätkiä, en jaksa jakaa sitä aina uuteen echoon. Wordwrappia ei tästä mopoversiosta löydy... :(
Aihe on jo aika vanha, joten et voi enää vastata siihen.