Avatar billede fraggel- Nybegynder
16. oktober 2003 - 15:55 Der er 2 kommentarer og
1 løsning

Hjælp til checkout script.

Hep hey...
Jeg har dette script som viser hva man har bestilt... og sender en mail med en ordre... men som i kan se så vil den jo kun sende den første vare hvordan faen får jeg den til at sende det hele ?


:KODE:

<?php
ob_start();
include("db.php");

        global $dbServer, $dbUser, $dbPass, $dbName;

        $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);


$result = mysql_query("select * from cart inner join items on cart.itemId
  = items.itemId where cart.cookieId = '". GetCartId() . "' order by
  items.itemName asc");
  ?>
<html>
<body>
<form action="<?php echo $PHP_SELF; ?> " method="POST">
<?php
        $row = mysql_fetch_assoc($result);
        $numRows = mysql_num_rows($result);
       
        if($numRows == 0)
  {
echo "Din kurv er tom";
}
  else
    echo  "Din ordre ser ud som følger...<br>";
  {
  do
  {
  ?>
<table width="600" border="0"><tr>
  <td>Vare navn </td>
  <td>Antal</td>
<td>Pris</td>
</tr>
  <tr>
    <td><input name="vare" type="text" value="<?php echo $row["itemName"]; ?>">      </td>
    <td><?php echo $row["qty"]; ?></td>
    <td><?php echo number_format($row["itemPrice"], 2, ".", ","); ?></td>
  </tr></table>
<?php
  } while($row = mysql_fetch_assoc($result));
  }
mysql_query("delete from cart where cart.cookieId = '". GetCartId() . "'");
?>


  <table width="500">
    <tr>
      <td width="25%">Navn:</td>
      <td width="75%">        <input type="text" name="navn">      </td>
    </tr>
    <tr>
      <td>Adresse:</td>
      <td>        <input type="text" name="adresse">      </td>
    </tr>
    <tr>
      <td>Post nummer: </td>
      <td>        <input type="text" name="postnr">      </td>
    </tr>
    <tr>
      <td>By:</td>
      <td>        <input type="text" name="by">      </td>
    </tr>
    <tr>
      <td>Telefon:</td>
      <td>        <input type="text" name="telefon">      </td>
    </tr>
    <tr>
      <td>E-Mail:</td>
      <td>        <input type="text" name="epost">      </td>
    </tr>
   
  </table>
  <blockquote>    <br>
  Bem&aelig;rkninger:<br>
        <textarea wrap="on" class="but" rows="5" cols="30" name="tekst"></textarea>
    <br>
    <input type="submit" class="button" value="Send Ordre" name="send">
    <br>
    <?php

if ($send) {
    function tilbage($meddelelse) {
        echo  "$meddelelse\n";
        echo  "<form><input type=button value=\"<<< Tilbage\" onClick=history.back()></form>\n";
        echo  "</body></html>\n";
        exit;
    }

    if (!$navn) tilbage( "<BR><BR>Du har glemt at skrive dit navn...");
    if (!$tekst) tilbage( "Du har glemt at skrive noget beskedfeltet");
 
  $navn = "$navn ";
  $adresse = "$adresse ";
  $postnr = "$postnr ";
  $by = "$by ";
  $telefon = "$telefon ";
  $epost = "$epost ";
  $vare = "$vare ";
 
 
 
    mail( "yahoooo@c.dk", "Ordre fra - $navn", "$navn , $adresse, $postnr, $by, $telefon, $epost, $tekst, $vare", "From: $epost\nX-Mailer: http://$HTTP_HOST$REQUEST_URI");
echo "Vi har modtaget din bestilling, er varene bestilt inden kl 14:00 afsendes de idag.\n";
}


?>
          </font>          </div>
  </blockquote>
</form>
<blockquote>  <a href="index.php">tilbage</a>  </blockquote>
</body></html>
<?php
ob_end_flush();

?>

:SLUT KODE:
Avatar billede jacobsdk Nybegynder
16. oktober 2003 - 16:12 #1
Mon ikke dit problem er at du ingen steder sætter de forskellige varer sammen? Når du tager værdien direkte fra feltnavnet ("vare") tror jeg php kløjs i at alle felter har samme navn (hvilket forøvrigt ikke er god html...

En løsning kunne være at lave variablen $varer, der lægger de forskellige felter sammen. Din kode vil så komme til at se ud som følger:
<?php
ob_start();
include("db.php");

        global $dbServer, $dbUser, $dbPass, $dbName;

        $cxn = @ConnectToDb($dbServer, $dbUser, $dbPass, $dbName);


$result = mysql_query("select * from cart inner join items on cart.itemId
  = items.itemId where cart.cookieId = '". GetCartId() . "' order by
  items.itemName asc");
  ?>
<html>
<body>
<form action="<?php echo $PHP_SELF; ?> " method="POST">
<?php
        $row = mysql_fetch_assoc($result);
        $numRows = mysql_num_rows($result);
       
        if($numRows == 0)
  {
echo "Din kurv er tom";
}
  else
    echo  "Din ordre ser ud som følger...<br>";
  {
  do
  {
  ?>
<table width="600" border="0"><tr>
  <td>Vare navn </td>
  <td>Antal</td>
<td>Pris</td>
</tr>
  <tr>
    <td><input name="vare" type="text" value="<?php echo $row["itemName"]; ?>">      </td>
    <td><?php echo $row["qty"]; ?></td>
    <td><?php echo number_format($row["itemPrice"], 2, ".", ","); ?></td>
  </tr></table>
<?php
    $varer = $varer.$row["qty"]." stk. ".$row["itemName"]." a ".$row["itemPrice"]."/n";
  } while($row = mysql_fetch_assoc($result));
  }
mysql_query("delete from cart where cart.cookieId = '". GetCartId() . "'");
?>


  <table width="500">
    <tr>
      <td width="25%">Navn:</td>
      <td width="75%">        <input type="text" name="navn">      </td>
    </tr>
    <tr>
      <td>Adresse:</td>
      <td>        <input type="text" name="adresse">      </td>
    </tr>
    <tr>
      <td>Post nummer: </td>
      <td>        <input type="text" name="postnr">      </td>
    </tr>
    <tr>
      <td>By:</td>
      <td>        <input type="text" name="by">      </td>
    </tr>
    <tr>
      <td>Telefon:</td>
      <td>        <input type="text" name="telefon">      </td>
    </tr>
    <tr>
      <td>E-Mail:</td>
      <td>        <input type="text" name="epost">      </td>
    </tr>
   
  </table>
  <blockquote>    <br>
  Bem&aelig;rkninger:<br>
        <textarea wrap="on" class="but" rows="5" cols="30" name="tekst"></textarea>
    <br>
    <input type="submit" class="button" value="Send Ordre" name="send">
    <br>
    <?php

if ($send) {
    function tilbage($meddelelse) {
        echo  "$meddelelse\n";
        echo  "<form><input type=button value=\"<<< Tilbage\" onClick=history.back()></form>\n";
        echo  "</body></html>\n";
        exit;
    }

    if (!$navn) tilbage( "<BR><BR>Du har glemt at skrive dit navn...");
    if (!$tekst) tilbage( "Du har glemt at skrive noget beskedfeltet");
 
  $navn = "$navn ";
  $adresse = "$adresse ";
  $postnr = "$postnr ";
  $by = "$by ";
  $telefon = "$telefon ";
  $epost = "$epost ";

 
    mail( "yahoooo@c.dk", "Ordre fra - $navn", "$navn , $adresse, $postnr, $by, $telefon, $epost, $tekst, $varer", "From: $epost\nX-Mailer: http://$HTTP_HOST$REQUEST_URI");
echo "Vi har modtaget din bestilling, er varene bestilt inden kl 14:00 afsendes de idag.\n";
}


?>
          </font>          </div>
  </blockquote>
</form>
<blockquote>  <a href="index.php">tilbage</a>  </blockquote>
</body></html>
<?php
ob_end_flush();

?>

Bemærk dog at denne løsning ikke tager højde for at man ændrer i felterne - det er indholdet fra databasen der sendes videre. Hvis der skal tages højde for dette skal koden se ud på en HELT anden måde...

mvh

Jacob
Avatar billede fraggel- Nybegynder
16. oktober 2003 - 17:03 #2
jeg er sq ked af at sige det... men der kommer stadig kun 1 ting med... :/
Avatar billede fraggel- Nybegynder
22. november 2003 - 15:32 #3
gg
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