2011-12-09 4 views
0

J'essaie de créer une page de paiement en PHP. La page qui répertorie les éléments s'appelle shop.php. Sur cette page, j'affiche un nombre d'articles à vendre avec une case à cocher à côté de chaque article. Je tire le nom de l'article et les informations de prix de la base de données. Voici mon code principal.PHP Checkbox Values ​​

$row = mysql_fetch_array($query); 
while($row) { 
    echo "<TR>"; 
    echo "<TD><B>$row[Name] </B></TD>"; 
    echo "<TD><B>"."$"."$row[Price] </B></TD>"; 
    echo "<TD><input type=checkbox name=foods[] value='$row[Price]' /></TD>"; 
     echo "</TR>"; 
$row = mysql_fetch_array($query); 
} 

<input type="submit" name="buy" value="Buy Now" /> 

Je suis en train le nom des cases à cocher pour les aliments [] which'll être un tableau qui va contenir des valeurs de toutes les cases soumises. Lorsque l'utilisateur clique sur le bouton "Acheter", il sera redirigé vers la page cart.php, qui affichera le nom et le prix de l'article acheté. Je sais que je peux produire les prix en faisant une boucle dans le tableau $ items. Le problème que j'ai est que je ne comprends pas comment je pourrais afficher les noms des éléments. Je thoght de faire ce qui suit:

$row = mysql_fetch_array($query); 
while($row) { 
    echo "<TR>"; 
    echo "<TD><B>$row[Name] </B></TD>"; 
    echo "<TD><B>"."$"."$row[Price] </B></TD>"; 
    echo "<TD><input type=checkbox name='$row[Name]' value='$row[Price]' /></TD>"; 
    echo "</TR>"; 
$row = mysql_fetch_array($query); 
} 

Cette fois-ci, le nom et le prix des articles sont inclus dans la case à cocher comme son nom et la valeur. Mais encore une fois, le problème est de savoir comment les afficher sur la page cart.php sans codage dur. Ce que je signifie que comment pourrais-je afficher le nom de l'article et son prix sans faire quelque chose comme ceci: (. On suppose que l'un des noms d'objets est Burger qui a été peuplé comme le nom de la case à cocher)

if (isset($_POST['Burger'])){ 
echo "<td>$_POST['Burger']</td>"; 
} 

J'apprécierais toutes les suggestions/conseils sur cette question. Je vous remercie.

Répondre

1

Si vous nommez les cases à cocher comme:

<input type='checkbox' name='foods[{$row['Name']}]' value='{$row['Price']}' /> 

Vous pouvez accéder au tableau de $ _POST [ « aliments »] et la clé/valeur sera Nom/Prix. Donc vous pouvez faire:

foreach($_POST['foods'] as $name => $price) { 
    echo "<tr><td>$name</td><td>$price</td></tr>"; 
} 
+0

Merci beaucoup. C'est exactement ce que je cherchais. J'apprécie ton aide. – user1013264

1

Définissez le nom de chaque case comme aliments [$ row [nom]]. Vous devriez avoir le code suivant:

$row = mysql_fetch_array($query); 
while($row) { 
    echo "<TR>"; 
    echo "<TD><B>$row[Name] </B></TD>"; 
    echo "<TD><B>"."$"."$row[Price] </B></TD>"; 
    echo "<TD><input type=checkbox name='foods[{$row[Name]}]' value='$row[Price]' /></TD>"; 
     echo "</TR>"; 
$row = mysql_fetch_array($query); 
} 

<input type="submit" name="buy" value="Buy Now" /> 

Sur POST vous aurez associé la rangée des noms et des prix d'article.