Avatar billede cosmodk Nybegynder
12. november 2002 - 00:15 Der er 7 kommentarer

Overføre FORM data til en Session???

Jeg har et stort problem med at få overført nogle formdata til en session som kan kalde de data der var i formen på en anden side.

det er til en simpel indkøbsvogn med SIMPEL som nøgleord. Jeg skal simpelthen kunne adde ting til den samme session, hvor de data der ligger i den session så kan mailes til den "butik ansvarlige" som en ordre.

Min form ser således ud nu.. der er ingen Session data overhovedet på php siden som det ser ud nu. Jeg har ikke erfaring med at arbejde i Sessions og vender hermed dette spørgsmål til jer eksperter :) Jeg skal bruge også bruge et simpelt eksempel på hvordan jeg printer dataene ud på en anden side f.eks. shop.php

:code:

<!-- Form ShoppingCart -->
  <form method="post" action="mailto:cosmo@codes.dk" enctype="plain/text">

  <!--Indhold af databasen printes i tabellerne-->

  <tr class="tr_content">
    <td width="130" height="20" ALIGN="left"  VALIGN="middle"><font class="small_bl"><? echo $row->varenummer; ?></font></td>
    <td width="400" height="20" ALIGN="left"  VALIGN="middle"><font class="small_bl"><? echo $row->varenavn; ?></font></td>
    <td width="90"  height="20" ALIGN="right"  VALIGN="middle"><font class="small_bl"><? echo $row->pris; ?>,-&nbsp;</font></td>
    <td width="60"  height="20" ALIGN="center" VALIGN="middle"><font class="small_bl"><img src="images/info.gif" alt="Mere info" border="0" align="center"></td>
    <td width="35"  height="20" ALIGN="center" VALIGN="middle"><font class="small_bl"><input type="text" name="antal"></td>
    <td width="50"  height="20" ALIGN="center" VALIGN="middle"><font class="small_bl"><input type="submit" value="buy"></td>
  </form>     
  </tr>

:/code:

Håber der er nogle der kan hjælpe da jeg er fuldstændig på bar bund.

Mvh
Jimmy Jensen
Avatar billede sukos Juniormester
12. november 2002 - 06:38 #1
det der er jo ikke engang en halv begyndelse på et shoppingcart!
det eneste som brugeren kan, er jo at skrive antal?
Avatar billede sukos Juniormester
12. november 2002 - 06:45 #2
Og så skal du IKKE bruge action="maito:......"
Det skal du lade PHP'en gøre for , altså maile.

Og et simpelt eks. på sessions og forms:

Formsiden:

<html><head></head>
<body>
<form action="test.php" method="post">
<input type="text" name="test"><br>
<input type="submit" value="send">
</form>
</body></html>

test.php:

<?php
session_start();
if(isset($_POST['test'])) {
$_SESSION['test'] = $_POST['test'];
}else{
$_SESSION['test'] = "Hejsa";
}

echo $_SESSION['test'];
?>

http://dk.php.net/manual/en/ref.session.php
Avatar billede cosmodk Nybegynder
12. november 2002 - 09:42 #3
Ja det er rigtigt at det eneste brugeren kan er at skrive antal og klikke på den pågældende vare, men resten af informationerne i de andre TD celler skal også printes med i session. Min "kunde" ønsker at de skal kunne adde til en shoppingcart (i det her tilfælde sessionen) og så maile ham det fulde indhold af den session - så han kan sende ordren via postopkrævning. Produktdata ligger i en MySql database som det er nu. Hvordan får jeg formen til at submitte ALLE de data der ligger i den? altså alle felterne med de rigtige values der kommer fra databasen? - samt det her session eksempel du har givet, kan man adde mere end et sæt formdata til den?, altså blive ved med at fylde i den til man sender indholdet af sin session?

Mvh
Jimmy Jensen
Avatar billede cosmodk Nybegynder
12. november 2002 - 09:43 #4
BTW grunden til at jeg har mailto: i den nu, er for at have mulighed for at teste det output der kom af formen.

Mvh
Jimmy Jensen
Avatar billede cosmodk Nybegynder
12. november 2002 - 09:48 #5
har lige testet din kode - sessionen forsvinder?? jeg oprettede for sjovt en test2.php med samme indhold som test.php - linker til den i test.php, men når jeg så klikker på linket til test2 skriver den hejsa istedet for at printe indhold af session.. hvordan sikrer jeg mig at min session bliver hvor den er? og at jeg kan få fingre i den på andre sider? udover lige den der bliver postet til?

Mvh
Jimmy Jensen
Avatar billede cosmodk Nybegynder
12. november 2002 - 15:39 #6
Sorry har lige kørt en bugtest på den og fundet en lille tastefejl fra min side - nu mangler jeg bare at vide hvordan jeg kan tilføje flere date i sessionen uden at den smider de gamle data. F.eks hvis kunden skal købe mere end et produkt.. nogle der er friske på den?

Mvh
Cosmo
Avatar billede kryster Nybegynder
19. november 2002 - 12:12 #7
Det er klart at hvis du linker fra test.php til test2.php vil session være = Hejsa, da $_POST["test"] er false i test2.php og session dermed bliver overskrevet med hejsa.
Hvis du vil blive ved at tilføje nye vare til samme session.
test.php:
<?php
session_start();
if(isset($_POST['indkob'])) {
  $_SESSION['indkob'] = $_SESSION['indkob']."&".$_POST['indkob'];
}else{
  print "der er ikke købt noget";
}
print "<a href='vis.php'>Vis indhold af session indkob</a>";
?>

vis.php:
<?php
  print $_SESSION["indkob"];
?>

vis.php vil skrive noget i stil med "&10&3&2&4" du skal nok også have en session $_SESSION["vare"] der fortæller hvilken vare der er købt ok ikke kun antal.
når du så har session[vare] med indhold "&bh small&boxer large&net undertrøje"
og session[antal] med "&2&10&1"
kan du splite de to sessions op med explore så får antal ud for hver vare.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester