Avatar billede theboy Nybegynder
11. august 2005 - 02:23 Der er 5 kommentarer

tilføj vare

Jeg står i den situation at jeg har en website med flere varekategorier og under hver kategori bliver så hver vare listet, med hver sin felt hvor man kan indtaste antallet og så trykke på tilføj ud for den vare hvor man nu er.

Spørgsmålet er, Hvordan får jeg det lavet sådan at jeg kun bestiller en af varene, således der bliver sendt 2 variabler afsted: vareID og antallet?

Kan det laves med et link alla index.php?bestilid=xxxxx&bestilantall=xxxxx

Jeg skulle gerne efterfølgende kunne hente de 2 variabler ind i dokumentet igen med en evt. $_GET kommando.

efterfølgende skal de så puttes i varekurven som er en mysql database.

Nedenstående viser hvordan varene bliver præsenteret!





<form action="<?echo $PHP_SELF;?>" method="post" name="bestillings_form" id="bestillings_form">

<table width="100%"  border="0" cellspacing="0" cellpadding="0">
<?php do { ?>
            <tr>
              <td><?php
        if ($row_rsSubgroupvarer['billede']) {
        echo '<a href="billeder/'.$row_rsSubgroupvarer['billede'].'"><img border="0" src="billeder/'.$row_rsSubgroupvarer['billede'].'" height="100" >';} ?> </a></td>
              <td><?php echo $row_rsSubgroupvarer['vid']; ?></td>
              <td><?php echo $row_rsSubgroupvarer['tekst1']; ?></td>
              <td>
              <a href="#" onClick="MM_openBrWindow('vismere.php?subid=<?php echo $row_rsSubgroupvarer['subid']; ?>','Info',
              'width=400,height=300')">Vis Info</a></td>
              <td>(<?php echo $row_rsSubgroupvarer['stk']; ?> stk.)</td>
              <td align="right" valign="bottom"><h5>
                  <?php
                  echo $row_rsSubgroupvarer['pris'];
                  ?>
                  <input name="vareid" type="hidden" id="vareid" value="<?php echo $row_rsSubgroupvarer['id']; ?> ">
                </h5></td>
              <td align="left" valign="bottom"><h5>DKR<br>
        Euro<br>
        SKR</h5></td>
              <td valign="bottom"><input type="text" size="10">               
              <input type="submit" name="Submit" value="Tilføj"></td>
            </tr>
            <?php } while ($row_rsSubgroupvarer = mysql_fetch_assoc($rsSubgroupvarer)); ?>
</table></p>
</form>
Avatar billede morten-vadskaer Praktikant
11. august 2005 - 08:21 #1
Tjah - jeg synes da, at det lyder som en meget fornuftig løsning, at lade det indgå i dit link. Men du har jo allerede gang i en formular, så du kan jo også bare lade dem blive overført med formularen.

Så må jeg også lige stille et tillægsspørgsmål. Hvorfor gemmer du indkøbskurvens indhold i en MySQL-database? Har du overvejet at gemme dem i en SESSION?

M.v.h.

Molvins
KONDOMATEN.DK
Avatar billede theboy Nybegynder
11. august 2005 - 09:19 #2
Jeg prøver at undersøge begge dele i øjeblikket, men jeg har ikke den store viden inden for sessions. Hvis Jeg skal bruge sessions forsvinder alt jo vist også hvis man lukker browseren. Men hvis du har eller kan henvise til nogle eksempler hvor man kan tilføje, redigere, slette fra en array, så vil jeg gerne se det.

Du havde ikke en løsning til det ovenstående.
Som der er i øjeblikker så hvis brugeren trykker på send, så bliver bliver alle elementerne jo sendt der er i formularen. og hvis der nu vises 3 vare på siden og man trykker på tilføj, jamen så er der også 3 felter formularen prøver at sende. Men alle elementerne hedder det samme. Jeg kunne godt kalde de 2 elmenterne noget forskellige som fx:
<input name="<?php echo 'antal_af'.$row_rsSubgroupvarer['id']; ?>" type="text" id="<?php echo 'antal_af'.$row_rsSubgroupvarer['id']; ?>" size="10">
og så
<input name="vareid" type="hidden" id="vareid" value="<?php echo $row_rsSubgroupvarer['id']; ?> ">
Men hvordan skulle hvad mit tekstfelt hedder når jeg skal modtage indholde af det?
Avatar billede morten-vadskaer Praktikant
11. august 2005 - 13:19 #3
Hvis du bruger sessions ryger det hele, hvis browser-vinduet lukkes. Det er rigtigt. Men  hvor mange tror du, der fylder indkøbskurven op, lukker browseren, åbner den igen og vil i gang med at shoppe videre??.. Tror ikke, det er ret mange kunder, du vil miste på den konto. -Og tror nok at kunden har fuld forståelse for det, hvis det skulle ske. I øvrigt  vil kundens varer jo godtnok kunne ligge i din MySQL-database, men hvordan knytter du det til den enkelte kunde? Cookies? Hvad så hvis kunden sletter sine cookies og forventer at handle efter at han har lukket browseren??..

Nå, men jeg kan godt se, at du er nødt til at kalde dem alle noget forskelligt. Har derfor ikke rigtigt en løsning på dit problem. Hvis du skriver din email adresse her, skal jeg emaile dig en MEGET simpel indkøbskurv med sessions. Så kan du selv tilpasse den med varer fra en MySQL database.

M.v.h.

Molvins
Avatar billede theboy Nybegynder
11. august 2005 - 13:40 #4
Det vil jeg gerne. theboy50[snabela]sol[PUNKTUM]dk.

I øvrigt fanldt jeg over nedenstående script, som jeg desværre ikke ved helt præcis hvad gør, men resultater er at hvis jeg fra en side sender en formular til denne side, så printes de værdier ud som ikke er lig med nul. Dermed kan brugerene altså indtaste antalle af de vare brugeren ønsker flere gange og så til sidst trykke på Tilføj.
Det melder stadig fejl nogle steder, men der er fordi jeg ikke kan gennemskue det.

<?php if ($HTTP_SERVER_VARS['REQUEST_METHOD'] === 'POST') {
    $user_vars = $HTTP_POST_VARS;
} else {
    $user_vars = $HTTP_GET_VARS;
}

$Field_Order = array();
$errors = array();

foreach ($user_vars as $name => $value) {

    if (in_array($name,$options,true)) {
        $config[$name] = $value;
    } else {
            if ($output[$name] && $value) {
            $output[$name] = $output[$name] . ', ' . $value;
        } else if ($value) {
            array_push($Field_Order,$name);
            $output[$name] = $value;
        }

        $output[$name] = $value;
    }
}
foreach ($Field_Order as $field) {
            if ($config['print_blank_fields'] || $output[$field])
            {
                ?>
<b><?= $field ?>:</b> <?= $output[$field] ?><p>
<?php
            }
        }
   
    ?>
<p>


</body>
Avatar billede theboy Nybegynder
11. august 2005 - 14:45 #5
Som jeg forstå den ovenstående kode så kan man hente et array med:
$user_vars = $HTTP_POST_VARS;
I dette array indeholder navnet på de felter som er sendt til siden samt de værdier felterne indeholder.
Hvid jeg nu kan trække værdien for submit fra arrayet således og så får lavet et array indeholdende: navnet på tekstfelter som vare id (den kan jeg genere) og indholdet i værdien som antal.
Men i gen Hvordan laves denne lykke til at trække værdien ud og til at sætte dem ind i et nyt array unden Submit (som også bliver sendt)
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