2010-02-11 3 views
1
$index = 1; 
foreach($product['varieties'] as $variety){  
echo '<input style="width:10px; margin-left:9px; " name="price_' . $index . '" type="checkbox" value="' . $variety['price']. '" />'; 
echo '<input name="size_' . $index . '" type="text" value="' . $variety['size']. '" />'; $index++; 
} 

si vous pouvez voir ce qui aura un indice = 1 et il sera incrémenter où chaque itération prix_1, price_2, etc.and size_1, size_2. Maintenant, avec une dynamique nom = "" entrée comment puis-je recevoir dans le cart.php lorsque chaque nom sera différent?comment puis-je recevoir ce formulaire cart.php

ce serait quelque chose comme $price= "'..',$_POST['price_']"? Eh bien, je ne sais pas comment puis-je recevoir cet index de nom de l'URL cart.php.

Thnank vous. Au lieu de construire le nom de la chaîne comme size_1, pourquoi ne pas faire le nom comme ceci size[]

+0

Je pense que vous avez besoin de reformuler votre question si vous espérez une réponse – iBiryukov

Répondre

2

Ensuite, vous pouvez y accéder instantanément comme un tableau via PHP.

0

Regardez la réponse alex. Il est mieux adapté aux circonstances ..

Vous pourriez, à la fin, ajouter une zone de texte cachée avec le nombre d'éléments (la valeur $ index). et relire

donc après la boucle ajouter

echo '<input name="counter" type="hidden" value="' . $index. '" />' 

et quand vous essayez de le lire, la première chose serait de lire la $POST['counter'] puis boucle à nouveau de 1 à cette valeur la lecture du $POST['price_'.$loop_counter]

+1

Je préférerais ma méthode, au lieu de devoir suivre une limite. Que faire si quelqu'un (malveillant) envoie un nombre plus élevé? Plus à vérifier/déboguer/peut mal tourner. – alex

+0

vrai .. je viens d'un fond non PHP .. Votre solution est plus élégante .. –

+1

C'est OK - PHP a des tonnes de petits trucs pour rendre le web dev plus facile. C'est l'un des plus utiles. – alex

0

Vous pouvez trouver les valeurs avec quelque chose comme ceci:

$prices = preg_grep('/^price_\d+$/', $_POST); 

foreach($prices as $P) { 
    $idx = substr($p, 5); // extract the digits, which we know will be at position 5->end 

    $size = $_POST['size_' . $idx]; 
    etc.... 
} 

cela suppose pour que pour chaque p rice_ #, il y a une taille correspondante_ #

+0

Vous y trouverez une majuscule et une minuscule. – alex

Questions connexes