Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Palautelomakkeen toiminta

Sivun loppuun

terrasirius [10.04.2007 16:37:10]

#

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&auml;hetetty . Klikkaa <a href="index.php">t&auml;st&auml;</a> p&auml;&auml;st&auml;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">&nbsp;</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.)

SysRq868 [10.04.2007 17:09:06]

#

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.

Cornix [10.04.2007 18:28:55]

#

Tykkään ite kirjottaa selected="selected" valitulle optionille, vaikkakaan tuo arvo ei näköjään speksin mukaan olekaan pakollinen.

<option value="1"<?php if($_POST['Valinta'] == "1") echo " selected=\"selected\""; ?>>- Myymälä</option>

Damiqib [10.04.2007 19:22:35]

#

Cornix kirjoitti:

Tykkään ite kirjottaa selected="selected" valitulle optionille, vaikkakaan tuo arvo ei näköjään speksin mukaan olekaan pakollinen.

<option value="1"<?php if($_POST['Valinta'] == "1") echo " selected=\"selected\""; ?>>- Myymälä</option>

HTML speksi sallii melkein mitä vain, mutta XHTML speksi vaatii sekä attribuutin nimen, että arvon: http://www.w3.org/TR/xhtml1/#h-4.5

SysRq868 [10.04.2007 19:40:29]

#

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.

Grez [10.04.2007 20:04:31]

#

[mutu]Eikö tuolle selectedille voi kuitenkin antaa arvoksi mitä tahansa, eli ei tarvitse ihan niin pitkästi kirjoittaa kuin selected="selected" ?[/mutu]

Cornix [10.04.2007 20:13:47]

#

Ei vaakatason skrolleja voi ilmestyä tagien attribuuttien tai niiden arvojen takia. Ainoastaan näkyvä sisältö voi venyttää ulkoasua - taulukkotaitossa.

Grez [10.04.2007 20:18:53]

#

Ehkä SysRq868 tarkoitti koodieditorinsa palkkeja. (Tosin siinäkin voi varmana jakaa hötömölön useammalle riville)

SysRq868 [10.04.2007 21:37:38]

#

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... :(


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta