Avatar billede snigeren Nybegynder
25. juli 2007 - 16:23 Der er 16 kommentarer og
1 løsning

add item to cart.php

Jeg stillede det her spørgsmål lidt tidligere men prøver lige at gøre det lidt mere overskueligt =)

I hver linie af produkter er der to faktorer, der kan variere:
dropdown menuen med forskellige overflader "surfacenavn" og
antallet af hvert produkt man ønsker.

Det jeg har brug for er så at når man trykker på indkøbskurv ikonet skal den hente data fra dropdown menuen "select1" og fra antallet "qty" og sende sammen med resten i følgende sætning:

a href="cart.php?action=add_item&id=' . $row["id"] . '&qty=1"><img src="gfx/cart.gif" width="21" height="17" border="0"></a>

Her skal &qty=1  så skiftes ud med noget, og her kan jeg ikke lige følge med selv =)


Herunder selve koden for scriptet:

<?php
if($action=="ny"){
echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
echo '<tr><td colspan="10"><span class=headline>Artikler fra gruppen: ' . $_GET["varetype"] . '</span><br><br></td></tr>';
echo '<tr><td colspan="10"><img src="billeder/varetyper/' . $row2["pic"] . '"><br><br><br></td></tr>';
echo '<tr><td colspan="10">Tryk på indkøbskurven udfor de artikler du ønsker. Antallet kan altid ændres senere.<br><br><br></td></tr>';
echo '<tr><td align="left">Vare nr.</td><td align="left" width="50%">Beskrivelse</td><td align="right">Dimension</td><td align="right">Overflader</td><td align="right">Enhed</td><td align="right">Antal</td><td align="right">Pris</td><td align="right">&nbsp;Prisenhed</td><td></td><td align="center">Tilføj artikel</td><td></td></tr>';
echo '<tr><td colspan="10"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
while($row = mysql_fetch_array($query1))
  {
  echo '<tr><td align="left">' . $row["varenr"] . '</td><td align="left" width="50%">' . $row["beskrivelse"] . '</td><td align="right">' . $row["dimension"] . '</td><td align="right"><select name="select1">';
  $query3 = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr=" . $row["varenr"] . "")or die(mysql_error());
  while($row3 = mysql_fetch_array($query3))
    {
    echo '<option>' . $row3["surfacenavn"] . '</option>';
    }
  echo '</select></td><td align="right">' . $row["enhed"] . '</td><td align="right"><input type="text" name="qty" size="3" value="1"></td><td align="right">' . number_format($row["pris"], 2, ",", ".") . '&nbsp;kr.</td><td align="right">&nbsp;' . $row["prisenhed"] . '</td><td></td><td align="center"><a href="cart.php?action=add_item&id=' . $row["id"] . '&qty=' .  . '"><img src="gfx/cart.gif" width="21" height="17" border="0"></a></td><td></td></tr>';
}
echo '</table>';
}
?>


På forhånd tak!
Avatar billede jakobdo Ekspert
26. juli 2007 - 08:26 #1
Du er inde og bruge elementer fra en form, så det kunne lave sådan her:

<?php
if($action=="ny")
{
    echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
    echo '<tr><td colspan="10"><span class=headline>Artikler fra gruppen: ' . $_GET["varetype"] . '</span><br><br></td></tr>';
    echo '<tr><td colspan="10"><img src="billeder/varetyper/' . $row2["pic"] . '"><br><br><br></td></tr>';
    echo '<tr><td colspan="10">Tryk på indkøbskurven udfor de artikler du ønsker. Antallet kan altid ændres senere.<br><br><br></td></tr>';
    echo '<tr><td align="left">Vare nr.</td><td align="left" width="50%">Beskrivelse</td><td align="right">Dimension</td><td align="right">Overflader</td><td align="right">Enhed</td><td align="right">Antal</td><td align="right">Pris</td><td align="right">&nbsp;Prisenhed</td><td></td><td align="center">Tilføj artikel</td><td></td></tr>';
    echo '<tr><td colspan="10"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
   
    while($row = mysql_fetch_array($query1))
  {
      echo '<form action="cart.php?action=add_item" method="get">';
      echo '<input type="hidden" name="id" value="'.$row['id'].'">';
      echo '<tr><td align="left">' . $row["varenr"] . '</td><td align="left" width="50%">' . $row["beskrivelse"] . '</td><td align="right">' . $row["dimension"] . '</td><td align="right"><select name="select1">';
     
      $query3 = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr=" . $row["varenr"] . "")or die(mysql_error());
      while($row3 = mysql_fetch_array($query3))
    {
        echo '<option>' . $row3["surfacenavn"] . '</option>';
    }
      echo '</select></td><td align="right">' . $row["enhed"] . '</td><td align="right"><input type="text" name="qty" size="3" value="1"></td><td align="right">' . number_format($row["pris"], 2, ",", ".") . '&nbsp;kr.</td><td align="right">&nbsp;' . $row["prisenhed"] . '</td><td></td><td align="center"><a href="cart.php?action=add_item&id=' . $row["id"] . '&qty=' .  . '"><img src="gfx/cart.gif" width="21" height="17" border="0"></a></td><td></td></tr>';
      echo '<tr><td><input type="submit" value="indkøbskurv ikon"></td></tr>';
    }
    echo '</table>';
}
?>
Avatar billede snigeren Nybegynder
26. juli 2007 - 12:12 #2
Det ser meget fornuftigt ud,.. men nu kommer der et måske dumt spørgsmål,.. kan man lave den der kæmpe <input type="submit" value="indkøbskurv ikon">  knap som et fint lille stykke grafik? =)
Avatar billede jakobdo Ekspert
26. juli 2007 - 12:18 #3
Ja, du burde kunne lave:

<input type="image" src="gfx/cart.gif" value="Submit" alt="Submit">
Avatar billede snigeren Nybegynder
26. juli 2007 - 14:01 #4
så blev knappen en lille fin grafik dimmer :D

men jeg forstår ikke rigtig denne linie:
echo '<input type="hidden" name="id" value="'.$row['id'].'">';

skal vi ikke ha puttet id ind i <form action="cart.php?action=add_item" ?
Så der kommer til at står cart.php?action=add_item&id=$row['id']  på en eller andet måde?
Avatar billede jakobdo Ekspert
26. juli 2007 - 14:06 #5
Det gør vi netop med feltet hidden
Avatar billede snigeren Nybegynder
26. juli 2007 - 14:47 #6
jeg er ikke helt sikker på den gør det, hvis jeg holder musen over cart.gif så står der bare:  cart.php?action=add_item    og intet andet,.. der skulle den da gerne skrive:
cart.php?action=add_item&id=idnr&select1=envalgtoverflade

Kan det ikke passe?
Avatar billede jakobdo Ekspert
26. juli 2007 - 14:54 #7
Ja!
Prøv at klik på knappen.
Avatar billede snigeren Nybegynder
26. juli 2007 - 15:13 #8
ahh great sry my bad... glemte at se i selve adresselinien =)  /me er pinligt berørt nu =)

ud over de ting jeg skal bruge kommer der også &x=10&y=9 

derudover hvis der er mere end én vare på siden kommer alle varerne med i strengen dvs. jeg trykker på vare ét men vare to følger samtidig med... =(


Jeg smider lige hele scriptet med her igen for jeg har lavet et par ændringer og tilføjet dine scripts:


<?php
if($action=="ny"){
echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
echo '<tr><td colspan="8"><a href="java script:history.go(-1);"><< Gå tilbage til produktgruppe oversigten</a><br><br><br></td></tr>';
echo '<tr><td colspan="8"><span class=headline>Artikler fra gruppen: ' . $_GET["varetype"] . '</span><br><br></td></tr>';
echo '<tr><td colspan="8"><img src="billeder/varetyper/' . $row2["pic"] . '"><br><br><br></td></tr>';
echo '<tr><td colspan="8">Tryk på indkøbskurven udfor de artikler du ønsker. Antallet kan altid ændres senere.<br><br><br></td></tr>';
echo '<tr><td align="left">Vare nr.</td><td align="left" width="50%">Beskrivelse</td><td align="right">Dimension</td><td align="right">Overflader</td><td align="right">Enhed</td><td align="right">Antal</td><td></td><td align="center">Tilføj artikel</td><td></td></tr>';
echo '<tr><td colspan="8"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
while($row = mysql_fetch_array($query1))
{
  echo '<form action="cart.php?action=add_item" method="get">';
echo '<input type="hidden" name="itemId" value="'.$row['itemId'].'">';
  echo '<tr><td align="left">' . $row["varenr"] . '</td><td align="left" width="50%">' . $row["beskrivelse"] . '</td><td align="right">' . $row["dimension"] . '</td><td align="right"><select name="surfacenavn">';
  $query3 = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr=" . $row["varenr"] . "")or die(mysql_error());
  while($row3 = mysql_fetch_array($query3))
  {
    echo '<option>' . $row3["surfacenavn"] . '</option>';
  }
  echo '</select></td><td align="right">' . $row["enhed"] . '</td><td align="right"><INPUT onkeypress="return isNumberKey(event)" type="text" name="qty" value="1" size="3"></td><td></td><td align="center"><input type="image" src="gfx/cart.gif" value="Submit" alt="Submit"></td><td></td></tr>';
  echo '<tr><td colspan="8">&nbsp;</td></tr>';
  echo '<tr><td colspan="8"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
  echo '<tr><td colspan="8">&nbsp;</td></tr>';
}
echo '<td></td><td></td></tr></table>';
}
?>
Avatar billede jakobdo Ekspert
26. juli 2007 - 15:27 #9
Så ville jeg nok lave noget i stil med:

<?php
if($action=="ny")
{
    echo '<form action="cart.php?action=add_item" method="post">';
    echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
    echo '<tr><td colspan="8"><a href="java script:history.go(-1);"><< Gå tilbage til produktgruppe oversigten</a><br><br><br></td></tr>';
    echo '<tr><td colspan="8"><span class=headline>Artikler fra gruppen: ' . $_GET["varetype"] . '</span><br><br></td></tr>';
    echo '<tr><td colspan="8"><img src="billeder/varetyper/' . $row2["pic"] . '"><br><br><br></td></tr>';
    echo '<tr><td colspan="8">Tryk på indkøbskurven udfor de artikler du ønsker. Antallet kan altid ændres senere.<br><br><br></td></tr>';
    echo '<tr><td align="left">Vare nr.</td><td align="left" width="50%">Beskrivelse</td><td align="right">Dimension</td><td align="right">Overflader</td><td align="right">Enhed</td><td align="right">Antal</td><td></td><td align="center">Tilføj artikel</td><td></td></tr>';
    echo '<tr><td colspan="8"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
    while($row = mysql_fetch_array($query1))
    {
      echo '<tr><td align="left">' . $row["varenr"] . '</td><td align="left" width="50%">' . $row["beskrivelse"] . '</td><td align="right">' . $row["dimension"] . '</td><td align="right"><select name="surfacenavn['.$row['id'].']">';
      $query3 = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr=" . $row["varenr"] . "")or die(mysql_error());
      while($row3 = mysql_fetch_array($query3))
      {
        echo '<option>' . $row3["surfacenavn"] . '</option>';
      }
      echo '</select></td><td align="right">' . $row["enhed"] . '</td><td align="right"><INPUT onkeypress="return isNumberKey(event)" type="text" name="qty['.$row['id'].']" value="1" size="3"></td></tr>';
      echo '<tr><td colspan="8">&nbsp;</td></tr>';
      echo '<tr><td colspan="8"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
      echo '<tr><td colspan="8">&nbsp;</td></tr>';
    }
    echo '<tr><td colspan="8" align="center"><input type="image" src="gfx/cart.gif" value="Submit" alt="Submit"></td></tr>';
    echo '</table>';
    echo '</form>';
}
?>
Avatar billede snigeren Nybegynder
26. juli 2007 - 16:41 #10
uhm med det sidste script,.. kommer der først kun et indkøbskurv logo frem for neden i form`en. Det rettede jeg så det kom ud for hvert produkt. Men ingen af de to metoder sender itemId og/eller surfacenavn videre.

Noget helt andet er at jeg ikke helt kan forstå hvorfor den første løsning du lavede sender alle varene videre... me no get?! =)
Avatar billede jakobdo Ekspert
26. juli 2007 - 17:41 #11
Min sidste løsning smider det nu videre med POST, så der skal du rette din cart.php fra $_GET til $_POST
Det er nemmere når vi snakker store mængder data som skal sendes.

$_GET har en begrænsning på 1024 mener jeg.
Avatar billede snigeren Nybegynder
26. juli 2007 - 18:12 #12
hmm jeg kan altså ikke få den til at smide det videre med post, har rettet det i cart.php men så vidt jeg kan se har jeg fået dem alle rettet. Men hvis jeg laver dit nye script om til GET sender den fint data videre men der kommer alle produkterne stadig med i adresse linien =(

Jeg forstår stadig intet... må jeg uploade filerne til dig eller noget?
Avatar billede jakobdo Ekspert
26. juli 2007 - 18:25 #13
Så fang mig hellere på msn: jakobdo (at) hotmail [dot] com
Avatar billede snigeren Nybegynder
29. juli 2007 - 12:15 #14
Og løsningen blev:

if($action=="ny")
{
    echo '<table width="100%"  border="0" cellspacing="0" cellpadding="0">';
    echo '<tr><td colspan="8"><a href="java script:history.go(-1);"><< Gå tilbage til produktgruppe oversigten</a><br><br><br></td></tr>';
    echo '<tr><td colspan="8"><span class=headline>Artikler fra gruppen: ' . $_GET["varetype"] . '</span><br><br></td></tr>';
    echo '<tr><td colspan="8"><img src="billeder/varetyper/' . $row2["pic"] . '"><br><br><br></td></tr>';
    echo '<tr><td colspan="8">Tryk på indkøbskurven udfor de artikler du ønsker. Antallet kan altid ændres senere.<br><br><br></td></tr>';
    echo '<tr><td align="left">Vare nr.</td><td align="left" width="50%">Beskrivelse</td><td align="right">Dimension</td><td align="right">Overflader</td><td align="right">Enhed</td><td align="right">Antal</td><td></td><td align="center">Tilføj artikel</td><td></td></tr>';
    echo '<tr><td colspan="8"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
    while($row = mysql_fetch_array($query1))
    {
      echo '<form action="cart.php?action=add_item" method="get">';
      echo '<input type="hidden" name="itemId" value="'.$row['itemId'].'">';
      echo '<tr><td align="left">' . $row["varenr"] . '</td><td align="left" width="50%">' . $row["beskrivelse"] . '</td><td align="right">' . $row["dimension"] . '</td><td align="right"><select name="surfacenavn['.$row['id'].']">';
      $query3 = mysql_query("SELECT * FROM shop_surface_dd WHERE varenr=" . $row["varenr"] . "")or die(mysql_error());
      while($row3 = mysql_fetch_array($query3))
      {
        echo '<option>' . $row3["surfacenavn"] . '</option>';
      }
      echo '</select></td><td align="right">' . $row["enhed"] . '</td><td align="right"><INPUT onkeypress="return isNumberKey(event)" type="text" name="qty['.$row['id'].']" value="1" size="3"></td><td></td><td align="center"><input type="image" src="gfx/cart.gif" value="Submit" alt="Submit"></td></tr>';
      echo '<tr><td colspan="8">&nbsp;</td></tr>';
      echo '</form>';
      echo '<tr><td colspan="8"><img src="gfx/brown_dot.gif" width="100%" height="1"></td><td></td></tr>';
      echo '<tr><td colspan="8">&nbsp;</td></tr>';
    }
    echo '<tr><td colspan="8" align="center"></td></tr>';
    echo '</table>';
   
}
?>



Det var bare en forkert placering af <form> tags =)
Tak for hjælpen jakobdo, smider du lige et svar :D
Avatar billede jakobdo Ekspert
29. juli 2007 - 12:41 #15
Svar!
Avatar billede jakobdo Ekspert
29. juli 2007 - 13:16 #16
Takker for point.
Avatar billede snigeren Nybegynder
29. juli 2007 - 18:32 #17
no problemo =)

forresten var den sidste del af mit problem at action=add_item ikke kom med...
Dvs. følgende linie bliver "glemt"?
echo '<form action="cart.php?action=add_item" method="get">';

Derfor smed jeg følgende linie ind under, hvorefter det virker. Sikkert ikke den rigtige løsning men indtil videre må det være godt nok:
echo '<input type="hidden" name="action" value="add_item">';
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