2010-02-17 5 views
0

Je crée une table de commande. mon problème que j'ai est avec mon champ de forme pour chaque rangée/enregistrement avec dans le tableau.formulaire de commande php, en passant plusieurs variables

<input type="text" size="4" name="buy_item['2']" value="0"> 

Je définis chaque identifiant par une syntaxe similaire

buy_item[ item number ] 

mon problème est quand tout le formulaire est envoyé à travers la demande de poste comment puis-je savoir exactement quels articles ont été achetés?

Il est possible que leur nombre puisse aller jusqu'à 100 éléments différents, de sorte que les variables de post peuvent toujours changer. Ce que je sais comment faire est de coder chaque article dans le script d'achat, mais je pense que c'est très efficace et qu'il manque vraiment la possibilité d'ajouter des éléments ou de les supprimer.

serait l'équivalent de l'exemple en haut. mais si quelqu'un a acheté

buy_item['99'] 

au lieu de buy_item [ « 2 »]

Si quelqu'un peut me conduire vers la bonne direction, il serait grandement apprécié.

Répondre

0
foreach($_POST['buy_item'] as $item_id=>$amount){ 
    if($amount > 0){ 
    echo $item_id." was bought ".$amount." times"; 
    } 
} 
+0

$ item_id vous donnerait l'indice de tableau il dira point 0 a été acheté à bla bla, où comme il doit représenter le nom de l'élément :) – Sarfraz

+0

Nope, il le définit comme name = "buy_item [ '2 '] "2 est l'identifiant de l'article. cela n'a aucun sens s'il en serait autrement, il a besoin de deux valeurs, l'identifiant de l'objet et le montant acheté. – Rufinus

+0

la définissant comme ceci buy_item ['2'] ne fonctionnera pas pour plusieurs champs, il doit les envelopper dans un tableau en utilisant simplement buy_item [] – Sarfraz

Questions connexes