/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
$_SESSION problem ??
Fra : denver


Dato : 02-01-03 16:53

Hej

På en side har jeg en <FORM>, hvori man indsætter værdier for $ingredients,
$quantity og $tal ...

Når den sendes følger disse værdier naturligvis med. Mit problem opstår ved
at jeg kører samme <FORM> igen, og lister de medsendte værdier over den
<INPUT>^boks hvor værdierne sættes.

Nu skal man kunne sende <FORM>'en igen og igen, og hver gang listes de
medsendte informationer over hinanden, altså at man kan vælge
ex.$ingredients 5 gange, med forskellige ting, og de bliver _alle_ vist på
siden i en kolonne.

MEN problemet er jo at $ingredients bliver overskrevet hver gang, så´der kun
kommer til at stå EN ting over boksen ??

Jeg har med noget $_SESSION['var']; leget lidt med systemet, men kan ikk få
den til at vise det mere en 1 side frem. Har kigget www.php.net igennem uden
at finde noget jeg lige kunne kæde det sammen med.

Har en idé om at jeg måske skal gemme det som $ingredients1 og $ingredients2
osv. men hvordan jeg lige får kodet det så det virker kan jeg ikke overskue
??

Håber i forstår mit spørgsmål, det er lidt svært at forklare ...

/denver





 
 
Jonni (02-01-2003)
Kommentar
Fra : Jonni


Dato : 02-01-03 19:01

denver wrote:
> Hej
>
> På en side har jeg en <FORM>, hvori man indsætter værdier for
> $ingredients, $quantity og $tal ...
>
> Når den sendes følger disse værdier naturligvis med. Mit problem
> opstår ved at jeg kører samme <FORM> igen, og lister de medsendte
> værdier over den <INPUT>^boks hvor værdierne sættes.
>
> Nu skal man kunne sende <FORM>'en igen og igen, og hver gang listes de
> medsendte informationer over hinanden, altså at man kan vælge
> ex.$ingredients 5 gange, med forskellige ting, og de bliver _alle_
> vist på siden i en kolonne.
>
> MEN problemet er jo at $ingredients bliver overskrevet hver gang,
> så´der kun kommer til at stå EN ting over boksen ??
>
> Jeg har med noget $_SESSION['var']; leget lidt med systemet, men kan
> ikk få den til at vise det mere en 1 side frem. Har kigget
> www.php.net igennem uden at finde noget jeg lige kunne kæde det
> sammen med.
>
> Har en idé om at jeg måske skal gemme det som $ingredients1 og
> $ingredients2 osv. men hvordan jeg lige får kodet det så det virker
> kan jeg ikke overskue ??
>
> Håber i forstår mit spørgsmål, det er lidt svært at forklare ...
>
> /denver

Min begrænsede erfaring er at POST variabler kun kommer med over hvis de
er sat i formularen, du får dem simpelthen ikke med næste gang du sender
formularen. Min løsning på en næsten lignende situation var noget i
retning af:

if($reg_user) {echo "<span class=\"affirmgreen\">$reg_user</span>";echo
"<input type=\"hidden\" name=\"reg_user\" value =\"$reg_user\" />";}
else
{ echo " <input type=\"text\" maxlength=\"10\" size=\"20\"
name=\"reg_user\" tabindex=\"1\" /> "; echo $error_user;}

Jeg ved ikke om du kan gennemskue det, men jeg gemmer den første værdi i
et 'hidden' input.
Man må kunne gøre noget tilsvarende med et array?
Håber det hjalp
Jonni



Niels Andersen (02-01-2003)
Kommentar
Fra : Niels Andersen


Dato : 02-01-03 19:46

denver wrote in <3e146223$0$71646$edfadb0f@dread11.news.tele.dk>:
> altså at man kan vælge
> ex.$ingredients 5 gange, med forskellige ting, og de bliver _alle_ vist på
> siden i en kolonne.
>
> MEN problemet er jo at $ingredients bliver overskrevet hver gang, så´der
> kun kommer til at stå EN ting over boksen ??
>
> Jeg har med noget $_SESSION['var']; leget lidt med systemet, men kan ikk
> få den til at vise det mere en 1 side frem.

Hvis jeg har forstået dig rigtigt, kan du tilføje "[]" til navnet, så bliver
det til et array.

Eksempel fra manualen:

<select multiple name="beer[]">
<option value="warthog">Warthog</option>
<option value="guinness">Guinness</option>
<option value="stuttgarter">Stuttgarter Schwabenbräu</option>
</select><br>

Så vil $_REQUEST['beer'] være et array med de valgte elementer.

http://www.php.net/manual/en/language.variables.external.php
Kig omkring eksempel 8-4.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

denver (02-01-2003)
Kommentar
Fra : denver


Dato : 02-01-03 20:38

> Hvis jeg har forstået dig rigtigt, kan du tilføje "[]" til navnet, så
bliver
> det til et array.
>
> Eksempel fra manualen:
>
> <select multiple name="beer[]">
> <option value="warthog">Warthog</option>
> <option value="guinness">Guinness</option>
> <option value="stuttgarter">Stuttgarter Schwabenbräu</option>
> </select><br>
>
> Så vil $_REQUEST['beer'] være et array med de valgte elementer.
>
> http://www.php.net/manual/en/language.variables.external.php
> Kig omkring eksempel 8-4.

ok, så har jeg måske forklaret mig dårligt.

Jeg kan godt gemme ex.:

<select name="ingredients">
<?php
while ($arr = mysql_fetch_array($res2)){
print "<option>".$arr['name']."</option>";
}
?>
</select>

og så efter at <FORM>'en er submitted kan jeg bare <?php print $ingredients;
?>, det er ik det!

Jeg vil gerne at jeg _gentagende_ gange kan køre den <FORM> og at det for
hver gang den gemmes bliver noget i retning af:

1. gang: $ingredients1
2. gang: $ingredients2
3. gang: $ingredients3
4. gang: $ingredients4
osv.

Så jeg kan liste alle de ingredienser man har valgt at tilføje mens brugeren
sidder og vælger flere. Disse skal så ved $_SESSION['var'] =
"$ingredients"."$ingredients2"."osv ... gemmes så jeg, når brugeren er
færdig med at tilføje, kan smide hele bunken i en MySql.

Problemet ligger i at få kaldt de fortløbende $ingredientsX et stigende
nummer, og session'ed dem ??

/Denver






Niels Andersen (03-01-2003)
Kommentar
Fra : Niels Andersen


Dato : 03-01-03 10:07

denver wrote in <3e1496cc$0$71714$edfadb0f@dread11.news.tele.dk>:
> Så jeg kan liste alle de ingredienser man har valgt at tilføje mens
> brugeren sidder og vælger flere. Disse skal så ved $_SESSION['var'] =
> "$ingredients"."$ingredients2"."osv ... gemmes så jeg, når brugeren er
> færdig med at tilføje, kan smide hele bunken i en MySql.
>
> Problemet ligger i at få kaldt de fortløbende $ingredientsX et stigende
> nummer, og session'ed dem ??

Prøv med:
$_SESSION['var'][] = $ingedients;

--
Mvh.

Niels Andersen
(la nels. anersyn.)

denver (03-01-2003)
Kommentar
Fra : denver


Dato : 03-01-03 23:46


"Niels Andersen" <niels-usenet@myplace.dk> wrote in message
news:6pcR9.23866$Hl6.2535224@news010.worldonline.dk...
>
> Prøv med:
> $_SESSION['var'][] = $ingedients;
>
> --

Nu har jeg fået det hele til at virke, lige med undtagelse af en ting.

outputtet fra:

$_SESSION['all_ingredients'][] = array($quantity, $tal, $ingredients);
foreach ($_SESSION['all_ingredients'] as $value)

for ($i = 0; $i < count($value); $i++){
echo($value[$i]."<br>");
}
}

bliver listet som fx.

kartofler
22
kg

og ikke som jeg gerne vil have:

22 kg kartofler

????? Nogen forslag til rettelse for at opnå det ønskede resultat ?

/denver



Niels Andersen (03-01-2003)
Kommentar
Fra : Niels Andersen


Dato : 03-01-03 23:55

denver wrote in <3e161457$0$71664$edfadb0f@dread11.news.tele.dk>:
> echo($value[$i]."<br>");
[giver linjeskift, mellemrum ønskes]

I HTML er "<br>" et linjeskift. Det skal bare ændres til et mellemrum:

echo($value[$i]." ");

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408541
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste