Avatar billede artico Novice
28. april 2005 - 13:03 Der er 9 kommentarer og
1 løsning

form og select kode ?

Jeg har p.t. denne form:
echo "<table>";
foreach($products as $p) {
    echo "<tr><td><form method='post' action='demo.php'>";
    echo "<input type='hidden' name='id' value='".$p['id']."'/>";
    echo "".$p['name'].' $'.number_format($p['price'],2)." ";
    echo "<input type='text' name='qty' size='5' value='1'><input type='submit' value='Add to cart' name='add'>";
    echo "</form></td></tr>";
}
echo "</table>";

*******Der arbejder med disse variabler:
$products = array();
$products[1] = array("id"=>1,"name"=>"Soap","price"=>2.00);
$products[2] = array("id"=>2,"name"=>"Shampoo","price"=>4.80);
$products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95);

Som jeg gerne vil udskifte med et select som dette istedet:

<form id="add" action="demo.php" method="post">
        <select size="1" onchange="window.open(this.options[this.selectedIndex].value,'_self')">
                                                        <?
$mysqlGetmenu = mysql_query("select * from testvaredb ");
while($mysqlRow = mysql_fetch_array($mysqlGetmenu))
{
echo "<option value='".$mysqlRow['id']."'>".$mysqlRow['name']."</option>";
} ?>                                </select>
       

Selectén henter fint i DBén, men sender ikke det jeg vælger videre ??                    </form>
Avatar billede busschou Praktikant
28. april 2005 - 13:08 #1
din select skal have et name før du kan referere til den med dine $_POST variable
Avatar billede venchil Nybegynder
28. april 2005 - 15:33 #2
Ja, går ud fra at du godt ved hvordan du indsætter det. Men for en sikkerheds skyld skal du tilføje attributten name='navnpåselect'
Avatar billede artico Novice
28. april 2005 - 18:05 #3
Jeg er ikke helt med på hvordan.. :-( jeg vil gerne skifte dette ud: $products = array();
$products[1] = array("id"=>1,"name"=>"Soap","price"=>2.00);
$products[2] = array("id"=>2,"name"=>"Shampoo","price"=>4.80);
$products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95);

Med Select istedet ?  Jeg forhøjer point for et kodeforslag :-)
Avatar billede busschou Praktikant
28. april 2005 - 20:41 #4
Hvordan ser din kode ud? For i dit spørgsmål forstår jeg det som om du har en select som virker pånær den ikke sender noget med?
Det vi foreslår er at give den et name sådan her
----
<form id="add" action="demo.php" method="post">
<select size="1" name="minSelect" onchange="window.open(this.options[this.selectedIndex].value,'_self')">
<?
$mysqlGetmenu = mysql_query("select * from testvaredb ");
while($mysqlRow = mysql_fetch_array($mysqlGetmenu))
{
echo "<option value='".$mysqlRow['id']."'>".$mysqlRow['name']."</option>";
} ?>                               
</select>
</form>
----
Men nu siger du noget med det array?
Avatar billede artico Novice
28. april 2005 - 20:59 #5
Ja, nu er det arrayét $products der levere variabler til FORMén, jeg vil gerne have at variablerne skal komme fra Selectén (som henter fra DBén) istedet for ? Så opgaven er at udskifte det før nævnte array ($products) Med et Select....
Avatar billede artico Novice
28. april 2005 - 21:03 #6
Her kommer hele koden: (Hvor Selecten skal ind istedet fro formen)
include("../config.php");
include "wfcart.php";
session_start();      // start the session


$cart =& $_SESSION['wfcart']; // point $cart to session cart.
if(!is_object($cart)) $cart = new wfCart(); // if $cart ( $_SESSION['cart'] ) isn't an object, make a new cart

// end of header stuff

?>
<html><head><title>pakker</title></head>
<body><h3>Sammensætning</h3>

<?

// Usually you would get your products from a database but we'll pretend..

// $products = array();
// $products[1] = array("id"=>1,"name"=>"A Bar of Soap","price"=>2.00);
// $products[2] = array("id"=>2,"name"=>"Shampoo","price"=>4.80);
// $products[3] = array("id"=>3,"name"=>"Pizza","price"=>12.95);


// Hent først data ud
$products = mysql_query("select * from testvaredb");

// Kør så igennem for hver række
while ($raekke = mysql_fetch_array($products)) {
  extract($raekke);
  echo "Name: $name Price: $price<br />";



// check to see if any items are being added
if($_POST['add']) {
    $product = $products[$_POST['id']];
    $cart->add_item($product['id'],$_POST['qty'],$product['price'],$product['name']);
}

// spit some forms
// You can have many different types of forms, such as many quantity boxes
// and an "add to cart" button at the bottom which adds all items
// but for the purposes of this demo we will handle one item at a time.
echo "<table>";
foreach($products as $p) {
    echo "<tr><td><form method='post' action='demo.php'>";
    echo "<input type='hidden' name='id' value='".$p['id']."'/>";
    echo "".$p['name'].' $'.number_format($p['price'],2)." ";
    echo "<input type='text' name='qty' size='5' value='1'><input type='submit' value='Add to cart' name='add'>";
    echo "</form></td></tr>";
}
echo "</table>";

 
echo "<h2>Items in cart</h2>";

if($cart->itemcount > 0) {
    foreach($cart->get_contents() as $item) {
        echo "<br />Item:<br/>";
        echo "Code/ID :".$item['id']."<br/>";
        echo "Quantity:".$item['qty']."<br/>";
        echo "Price  :$".number_format($item['price'],2)."<br/>";
        echo "Info    :".$item['info']."<br />";
        echo "Subtotal :$".number_format($item['subtotal'],2)."<br />";
    }
    echo "---------------------<br>";
    echo "total: $".number_format($cart->total,2);
} else {
    echo "No items in cart";
}
}
Avatar billede artico Novice
14. august 2005 - 20:26 #7
lukker
Avatar billede busschou Praktikant
14. august 2005 - 22:58 #8
og løsningen var ??
Avatar billede artico Novice
14. august 2005 - 23:05 #9
Jeg giver op.. men vil gerne give point´s alligevel så kom med et svar!
Avatar billede busschou Praktikant
14. august 2005 - 23:07 #10
hmm okey...
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