qualitum logo
Få fram värde från hidden-fält

PHPportalen Forum Index » PHP
Lägg ett bokmärke på hela tråden
Skapa nytt inlägg   Svara på inlägget
Visa föregående ämne :: Visa nästa ämne  
Startad av: Meddelande
logical



Medlem i: 2677 dagar

Status: Offline



#722182
Inlägg Skrivet: 2012-04-02 14:29      Ämne: Få fram värde från hidden-fält Citera

Hejsan,

Jag har följande kod:

KOD:
1:
 
2:
<div id="main">
3:
<div id="shopping_cart">
4:
<form action="?page=quick_by" method="post">
5:
<?php
6:
   
7:
   include("db.php");   
8:
   $get_products = "SELECT * FROM products LIMIT 2";
9:
   $result_products = mysql_query($get_products)
10:
      or die(mysql_error());
11:
   
12:
   while($row_products = mysql_fetch_row($result_products))
13:
   {
14:
      $id = $row_products[0];
15:
      //Get the flavors
16:
      $get_flavors = "SELECT flavor FROM flavors WHERE product_id=$id LIMIT 2 ";
17:
      $flavor_result = mysql_query($get_flavors)
18:
               or die(mysql_error());
19:
      
20:
      while($flavor_row = mysql_fetch_row($flavor_result))
21:
      {
22:
      
23:
?>
24:
         
25:
         <table border="0" cellspacing="0" cellpadding="0" width="">
26:
         <td class="shopping_cart"></td>
27:
         <td class="shopping_cart">Produkt</td>
28:
         <td class="shopping_cart">Smak</td>
29:
         <td class="shopping_cart">Antal</td>
30:
         <tr>
31:
         <td><img src="admin/logged_in/product_images/thumb/<?= $row_products[1] ?>"></td>
32:
         <td><?= $row_products[2] ?></td>
33:
         <td><?= $flavor_row[0] ?></td>
34:
         <td><input type="text" name="qty"><input type="hidden" name="product" value="<?= $row_products[0] ?>"></td></tr>
35:
         
36:
 
37:
<?php
38:
      }
39:
   }
40:
?>
41:
<input type="submit" name="submit" value="vidare">
42:
</form>
43:
</div>
44:
<?php
45:
if(isset($_POST['submit']))
46:
{
47:
   if(isset($_POST['qty']))
48:
   {
49:
      if(isset($_POST['product']))
50:
      {
51:
         foreach($_POST as $pd)
52:
         {
53:
            
54:
         }
55:
      }
56:
 
57:
   }
58:
}
59:
?>
60:
 


Det jag ivll är att få fram innehållet i hidden-fältet för varje produktantal man väljer.

Väljer man 2st av produkt X och 2st av produkt Z så vill jag få fram värdet på hidden fältet på X och Z. Dessa hidden-fält innehåller produkt-idn. Jag kan inte komma på hur jag ska loopa ut detta för att få fram det rätta värdet.

Någon som vill ge mig en hint?
 

_________________
Gnu/Linux
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
jeja2000



Medlem i: 657 dagar
Från: Lyrestad
Status: Offline



#722199
Inlägg Skrivet: 2012-04-03 11:19      Ämne: Citera

Vad är det du vill få fram då? det går ju att döpa ett fält till namn[] om du vill ha flera likadana.

Då får du ju ut fältet med $_POST['namn'] vilken är en array då.

Vad är det du har problem med att loopa för att få ut? Men om du vill ha ut en vektor till en input kan du ju serializera vektorn.

Beskriv lite mer vad som är problemet om du inte löser det. Är kanske lite trög så här nu på morgonen.

KOD:
1:
 
2:
if(isset($_POST['qty'])){
3:
// Nu har du antalet.
4:
// ska du lagra det som ett nummer
5:
$num_products = $_POST['qty'];
6:
// Antar att det är nån form av webbshop du bygger då borde du ha en //order tabell antar jag?
7:
$res = mysql_query("insert into order_table(qty,product_id) VALUES('".$_POST['qty']."','"$_POST['product']"')");
8:
 
9:
 
10:
 
11:
}
12:
 


Eller ska du ha nån annan lösning på det? Det enklaste måste vara nåt liknande det ovan, dock bör du nog säkra upp genom att escapea $_POST datan. För att inte få SQL-injections

EDIT: Lade till ett litet exempel
 

_________________
Programmering är som livet, det finns olika lösningar. Problem är utmaningar inte ett hinder :D
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
logical



Medlem i: 2677 dagar

Status: Offline



#722204
Inlägg Skrivet: 2012-04-03 12:52      Ämne: Citera

jeja2000 skrev:
Vad är det du vill få fram då? det går ju att döpa ett fält till namn[] om du vill ha flera likadana.

Då får du ju ut fältet med $_POST['namn'] vilken är en array då.

Vad är det du har problem med att loopa för att få ut? Men om du vill ha ut en vektor till en input kan du ju serializera vektorn.

Beskriv lite mer vad som är problemet om du inte löser det. Är kanske lite trög så här nu på morgonen.

KOD:
1:
 
2:
if(isset($_POST['qty'])){
3:
// Nu har du antalet.
4:
// ska du lagra det som ett nummer
5:
$num_products = $_POST['qty'];
6:
// Antar att det är nån form av webbshop du bygger då borde du ha en //order tabell antar jag?
7:
$res = mysql_query("insert into order_table(qty,product_id) VALUES('".$_POST['qty']."','"$_POST['product']"')");
8:
 
9:
 
10:
 
11:
}
12:
 


Eller ska du ha nån annan lösning på det? Det enklaste måste vara nåt liknande det ovan, dock bör du nog säkra upp genom att escapea $_POST datan. För att inte få SQL-injections

EDIT: Lade till ett litet exempel


Jag ska förklara lite bättre. Tanken är att jag ska göra en slags snabborder där alla produkter ifrån databasen listas vertikalt med ett fält vid sidan om sig där man kan fylla i hur många utav varje produkt man vill ha.

När man trycker på nästa, så ska man komma vidare med adress osv.

Det jag vill nu är att fånga upp vilka produkter besökaren har valt. Detta hade jag tänkt att göra i form utav ett hidden-fält där jag lagrar varje produkt:id. Men jag får inte ut de produkt-idn som besökaren valde.
 

_________________
Gnu/Linux
Till toppen på sidan
Visa användarprofil Skicka privat meddelande
jeja2000



Medlem i: 657 dagar
Från: Lyrestad
Status: Offline



#722216
Inlägg Skrivet: 2012-04-03 15:12      Ämne: Citera

om du använder
KOD:
1:
 
2:
for($i = 0; $i < mysql_num_rows($result_products); $ixx){
3:
<input type="text" name="qty[$i]"/>
4:
<input type="hidden" name="product[$i] />
5:
}
6:
 


Detta bör bilda
Detta testar du ju med print_r($_POST) så ser du alla element i post vektorn. Ser du då att product är en array så är det ju rätt.

$_POST['gty[0]'] och $_POST['product[0]']
beroende på hur många rader som finns i queryn.

Då bör du kunna skapa en enkel funktion för att loopa igenom qty och product. Annars seralize($_POST['product]). Bör väl fungera.
 

_________________
Programmering är som livet, det finns olika lösningar. Problem är utmaningar inte ett hinder :D
Till toppen på sidan
Visa användarprofil Skicka privat meddelande Besök användarens hemsida
Visa tidigare inlägg:   
Skapa nytt inlägg   Svara på inlägget
PHPportalen Forum Index » PHP
Hoppa till:  
Du kan inte skapa nya inlägg i det här forumet
Du kan inte svara på inlägg i det här forumet
Du kan inte ändra dina inlägg i det här forumet
Du kan inte ta bort dina inlägg i det här forumet
Du kan inte rösta i det här forumet
Du kan inte bifoga filer i detta forum
Du kan inte ladda ner filer från detta forum
Kontakta oss på adressen: info@phpportalen.net
Webbplatsen bygger i grunden på phpBB © 2001, 2002 phpBB Group

Modifieringar har senare gjorts i systemet av PHPportalen
Sid och logotypdesign skapad av Daren Jularic
qualitum logo