Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  3 1227
Hei! Er kommet så smått i gang med å lære meg PHP nå, og står litt fast på en oppgave. Skal lage et enkelt spørreskjema, med et par kriterier:
  • Må bruke "hidden type" for å mellomlagre svar
  • All koden må ligge i en fil (jeg kan ikke dele det opp)

Har laget et utkast, men sliter med at jeg bare får hentet frem det siste svaret. Jeg har sikkert satt det opp på en dum måte, alternativt så prøver jeg på noe som ikke er mulig... Er det noen som kunne ha gitt noen hint til hvorfor det ikke fungerer? Vil gjerne bare ha et dytt i rett retning, heller enn en ferdig løsning. Setter pris på alle innspill.

Kode

<?php
header('Content-type: text/html; charset=utf-8');

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
	<html xmlns="http://www.w3.org/1999/xhtml" lang="no-nb" xml:lang="no-nb">
		<head>
			<title>Spørreskjema</title>
        </head>

        <body>
		<center>
		<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
		<?php  if(!isset($_POST['btnNavn']) && !isset($_POST['btnPHP']) && !isset($_POST['btn101']) && !isset($_POST['btnMC']) ) { ?>
				Hva er navnet ditt? <br />
				<input type='text' name='navn' id='navn' /> <br /><br />
				<input type='submit' name='btnNavn' value='Send inn' />
				
				<?php }
			  if(isset($_POST['btnNavn'])) { ?>
				Liker du PHP? <br />
				<input type='checkbox' name='php' id='php' checked /> <br /><br />
				<input type='submit' name='btnPHP' value='Send inn' />
				<?php $navn = $_POST['navn']; ?>
				<input type='hidden' value='<?php $navn ?>' name='navn' />
		<?php	} 
	
	
				if (isset($_POST['btnPHP'])) { ?>
				Tar du også IBE101? <br />
				<input type="checkbox" name="ibe101" id="ibe101" checked /> <br /><br />
				<input type="submit" name="btn101" value="Send inn" />
				<input type='hidden' value='<?php $_POST['php'] ?>' name='php' />
		<?php } ?>
		
		<?php if (isset($_POST['btn101'])) {	?>
				Hvilket motorsykkelmerke er din favoritt? <br />
				<input type="text" name="mc" id="mc" /> <br /><br />
				<input type="submit" name="btnMC" value="Send inn" />
				<input type='hidden' value='<?php $_POST['ibe101'] ?>' name='ibe101' />		
		<?php } ?>
		
		<?php if (isset($_POST['btnMC'])) { ?>
		<input type='hidden' value='<?php $_POST['mc'] ?>' name='mc' />	

		<?php echo "Du heter " . $_POST['navn'] . ", og du liker " . $_POST['mc'] . "\n";
		
		
		 }?>
		</form>




		</center>
	   </body>

	</html>
Jeg har tatt andre og tredje if setning som eksempel, som du sa så ønsker du ingen ferdi løsning med et spark i riktig retning.

Kode

<php if(isset($_POST['btnNavn'])) { ?>
	Liker du PHP? <br />
	<input type='checkbox' name='php' id='php' checked /> <br /><br />
	<input type='submit' name='btnPHP' value='Send inn' />
	<input type='hidden' value='<?php $_POST['navn'] ?>' name='navn' />
<?php } ?> 
	
if (isset($_POST['btnPHP']) && isset ( $POST[ 'navn'] )) { ?>
	Tar du også IBE101? <br />
	<input type="checkbox" name="ibe101" id="ibe101" checked /> <br /><br />
	<input type="submit" name="btn101" value="Send inn" />
	<input type="hidden" value="<?php $_POST[ "navn" ] ?> name="navn" />
	<input type='hidden' value='<?php $_POST['php'] ?>' name='php' />
<?php } ?>
Når du lagrer $_POST ["navn"] som en hidden input value, og går over på neste trinnet så vil denne gå tapt, derfor så må du på tredje trinn både lagre $_POST ["navn"] og $_POST ["php"] som hidden values. På fjerde trinnet må du lagre både $_POST ["navn"], $_POST ["php"] og $_POST ["btn101"] som hidden values for at verdiene skal overføres til trinn 5.

Men dette er ingen god måte å gjøre det på, du bør heller se på Session eller andre former for å lagre verdiene som textfiler eller databaser.
Jeg har sett på Session (det sto litt lengre bak i boka), men akkurat denne gangen var det et krav at vi måtte bruke hidden values. Men forklaringen din var ganske logisk, jeg prøvde meg på noe lignende etter jeg skrev her i går. Men jeg ser jeg gjorde det litt feil. Regner meg jeg skal få det til nå! Tusen takk!