Just nu i M3-nätverket
Jump to content

PHP-formulär med session


lakris-loppan

Recommended Posts

lakris-loppan

Hi!

jag har gjort en sida där användaren skall kunna beställa diverse varor. och även fylla i sina kontaktuppgifter. Nu vill jag ta med mig de ifyllda uppgiftern till en bekräftelse sida.

 

Har fösökt att använda:

[color="#0000ff"]foreach[/color]([color="#0000ff"]$[/color]_SESSION [color="#0000ff"]as[/color] $[color="#ff0000"]key[/color] => $val) [color="#0000ff"]$[/color]$[color="#ff0000"]key[/color] = $val;

för att bara fa med mig just det som blivit valt.

 

Jag har ocksa provat att skriva :

Beställning:

<?[color="#0000ff"]php[/color] [color="#0000ff"]print[/color]_r([color="#0000ff"]$[/color]_POST) ?> 

 

...och da blev resultatet sa ful som nedan:

Beställning: Array ( [TV] => Beställd [antalTV] => 3 [formatTV] => 21 tum [namn] => Evert [adress] => Evertgatan [telefon] => 123456 => evert@evert.se [sUBMIT] => Vidare >>> )

 

Nagon som har ett tips pa hur man bara flyttar med det som valts i ett formulär och sen skriver ut det snyggt....?

 

/l-l

 

 

Link to comment
Share on other sites

Det absolut lättaste om du vill ha allt från formuläret är att lägga in hela _POST variabeln i _SESSION:

 

[color="#0000ff"]$[/color]_SESSION['post'] = [color="#0000ff"]$[/color]_POST;

Du hämtar sedan data genom att till exempel skriva såhär på nästa sida:

 

[color="#0000ff"]echo[/color] [color="#0000ff"]$[/color]_SESSION['post']['antalTV'];

Om du bara vill skriva ut vad som finns i sessionen så kan du använda dig av print_r som du skriver, för att lättare se vad som finns i sessionen använder du även <pre> taggen:

 

[color="#0000ff"]echo[/color] '<pre>';
[color="#0000ff"]print[/color]_r([color="#0000ff"]$[/color]_SESSION);
[color="#0000ff"]exit[/color];

--

"I killed my dinner with karate -

kick ´em in the face, taste the body;

shallow work is the work that I do." -Joanna Newsom

 

Stoppa mjukvarupatenten nu! http://www.ffii.se/

 

Link to comment
Share on other sites

lakris-loppan

vänta nu skall vi se om jag fattat rätt....

skall jag skriva echo $_SESSION['post']........ för alla mina tänkbara val i fomuläret.... för sen kommer ju märkeTV, StorlekTV och gud vet vad. En himla massa olika val finns angivna i formuläret och jag ville bara fa utskrift pa de som verkligen valts...?

/l-l

 

 

Link to comment
Share on other sites

Ett exempel där jag även sparar ner allt som finns i $_POST till $_SESSION['post']:

 

<?[color="#0000ff"]php[/color]

[color="#ff0000"]session_start[/color]();

?>

<form method="POST" action="<?=[color="#0000ff"]$[/color]_SERVER['[color="#0000ff"]php[/color]_SELF']?>">

<input type="checkbox" name="TVmodell" value="Luxor"> TV modell (Luxor)<br>
<input type="text" name="antalTv" value=""> Antal TV apparater<br><br>

<input type="checkbox" name="mp3Spelare" value="IRiver"> MP3spelare (IRiver)<br>
<input type="text" name="antalMp3Spelare" value=""> Antal mp3 spelare<br><br>

<input type="submit">

</form>

<?[color="#0000ff"]php[/color]
[color="#0000ff"]if[/color] ([color="#ff0000"]count[/color]([color="#0000ff"]$[/color]_POST)) {
[color="#0000ff"]$[/color]_SESSION['post'] = [color="#0000ff"]$[/color]_POST;
}

[color="#0000ff"]if[/color] ([color="#ff0000"]count[/color]([color="#0000ff"]$[/color]_SESSION['post'])) {
[color="#0000ff"]foreach[/color] ([color="#0000ff"]$[/color]_SESSION['post'] [color="#0000ff"]as[/color] $a => $ {
	[color="#0000ff"]if[/color] ($ {
		[color="#0000ff"]echo[/color] $a . ': ' . $b . '<br>';
	}
}
}

?>

Detta kommer enbart skriva ut värden om de har ett värde.

 

--

"I killed my dinner with karate -

kick ´em in the face, taste the body;

shallow work is the work that I do." -Joanna Newsom

 

Stoppa mjukvarupatenten nu! http://www.ffii.se/

 

Link to comment
Share on other sites

lakris-loppan

det ser intressant ut....! Om jag vill flytta med mig det som lagts in till nästa sida...kan jag inte använda action="<?=$_SERVER['php_SELF']?>" eller?

/l-l

 

Link to comment
Share on other sites

Jag läste ju såklart inte igenom din ursprungsfråga riktigt noga innan jag skrev den kodsnutten i förra svaret, det är ju dumt att ta med all data i sessionen då du ändå bara vill ha med den data som är ifylld, vi ändrar om lite i det scriptet jag skrev nyss så får du bara med relevant information in i sessionen:

 

<?[color="#0000ff"]php[/color]
[color="#ff0000"]session_start[/color]();
?>

<form method="POST" action="<?=[color="#0000ff"]$[/color]_SERVER['[color="#0000ff"]php[/color]_SELF']?>">

<input type="checkbox" name="TVmodell" value="Luxor"> TV modell (Luxor)<br>
<input type="text" name="antalTv" value=""> Antal TV apparater<br><br>

<input type="checkbox" name="mp3Spelare" value="IRiver"> MP3spelare (IRiver)<br>
<input type="text" name="antalMp3Spelare" value=""> Antal mp3 spelare<br><br>

<input type="submit">

</form>

<?[color="#0000ff"]php[/color]
[color="#0000ff"]if[/color] ([color="#ff0000"]count[/color]([color="#0000ff"]$[/color]_POST)) {
[color="#0000ff"]foreach[/color] ([color="#0000ff"]$[/color]_POST [color="#0000ff"]as[/color] $a => $ {
	[color="#0000ff"]if[/color] ($ {
		[color="#0000ff"]$[/color]_SESSION['post'][$a] = $b;
	}
}
}

[color="#0000ff"]if[/color] ([color="#ff0000"]count[/color]([color="#0000ff"]$[/color]_SESSION['post'])) {
[color="#0000ff"]foreach[/color] ([color="#0000ff"]$[/color]_SESSION['post'] [color="#0000ff"]as[/color] $c => $d) {
	[color="#0000ff"]if[/color] ($d) {
		[color="#0000ff"]echo[/color] $c . ': ' . $d . '<br>';
	}
}
}

?>

--

"I killed my dinner with karate -

kick ´em in the face, taste the body;

shallow work is the work that I do." -Joanna Newsom

 

Stoppa mjukvarupatenten nu! http://www.ffii.se/

 

Link to comment
Share on other sites

Nej precis, <?=$_SERVER['PHP_SELF']?> skriver ut den sidan du är på nu, jag skrev bara så för att posta formuläret till samma sida.

 

--

"I killed my dinner with karate -

kick ´em in the face, taste the body;

shallow work is the work that I do." -Joanna Newsom

 

Stoppa mjukvarupatenten nu! http://www.ffii.se/

 

Link to comment
Share on other sites

lakris-loppan

Tack tack! sorry att jag ställde till det lite där ;-)

...en sak till bara...detta med server self skall vara med även om jag vill flytta med hela kalaset till nästa sida.....? tills nu har jag använt action="best2.php" ...typ...?

 

Tack igen - himla schyrrigt att du vill ta i tu med mina problem, även om jag inte kan uttrycka mig riktigt klart....;-)

 

/l-l

 

Link to comment
Share on other sites

lakris-loppan

OK - ville bara dubbel-checka innan jag kavlar upp ärmarna här och börjar trixa! Tack för hjälpen!

/l-l

 

Link to comment
Share on other sites

Ojoj, tack för alla poäng! Det uppskattas såklart! :)

 

--

"I killed my dinner with karate -

kick ´em in the face, taste the body;

shallow work is the work that I do." -Joanna Newsom

 

Stoppa mjukvarupatenten nu! http://www.ffii.se/

 

Link to comment
Share on other sites

lakris-loppan

Vassego! :-)

man är ju mer än tacksam som grönis, när man far lite hjälp av expertisen :-)

..alltsa väl förtjänade poäng där!

/l-l

 

Link to comment
Share on other sites

lakris-loppan

bara en liiiiten sak till....?

I utskriften kommer SUBMIT: Vidare >>> med mitt i. Först kommer det första som beställts, sen submit vidare och sen kommer resten av beställningarna... Kan man korrigera det? Vad beror det pa?

/l-l

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...