2010-02-11 4 views
0

J'ai une boucle for qui affiche en fait un nom de produit et plusieurs boutons comme: Edit, Update, Cancel Pour chaque produit que j'affiche, il aura son propre jeu de bouton Edir, Update, et Cancel comme ci-dessous.

Peinture Modifier mise à jour Annuler

Je veux faire une boucle à travers les boutons de sorte que pour chaque catégorie, je peux effectuer une autre action. Je pensais à utiliser quelque chose comme btn_edit1, btn_edit2 pour le nom du bouton et utiliser une boucle for. 1, 2 sont les identifiants de catégorie. Peut-être que je ne suis pas assez clair. Désolé. Quelqu'un peut-il me donner quelques suggestions?

for($i = 0; $i<count($obj_categories_admin->categories);$i++) 
{ 

      echo "<tr>"; 

      echo "<td width='1500'>"; 
      echo "<input type='text' name='name' size = '30' value='" . $obj_categories_admin->categories[$i]['name'] . "'/>"; 

      echo "</td>"; 

      echo "<td width='500'>"; 

      echo "<input type='submit' value = 'Update details' name='submit_update_category_" . 
      $obj_categories_admin->categories[$i]['category_id'] . "'/>"; 

      echo "</td>"; 



      echo "<td width='500'>"; 

      echo "<input type='submit' value = 'Edit Sub Categories' name='submit_edit_sub_" . 
      $obj_categories_admin->categories[$i]['category_id'] . "'/>"; 

      echo "</td>"; 

      echo "<td width='500'>"; 
      echo "<input type='submit' value = 'Delete' name='submit_delete_category_" . 
      $obj_categories_admin->categories[$i]['category_id'] . "'/>"; 
      echo "</td>"; 

      echo "<td width='500'>"; 

      echo "<input type='submit' value = 'Cancel' name='cancel'" . "'/>" ; 

      echo "</td>"; 

      echo "</tr>"; 
    } 

Je veux faire quelque chose comme

foreach($_POST as $key => $value) 
{ 

} 

de sorte que lorsque je clique sur un bouton, il effectue une action en fonction de la category_id.

J'ai essayé cela comme suggéré:

echo "<input type='submit' name='submit[add_category]'" . 
"[" . $obj_categories_admin->categories[$i]['category_id'] . "]". " value='Add' />"; 

Maintenant dans ma classe, j'ai:

$a1 = $_POST['submit']; 
    $which_action = reset(array_keys($a1)); 
    $which_category = reset(array_keys($a1[$which_action])); 

Mais, je reçois l'erreur: Undefined index soumettre

+1

Je ne comprends pas quelle est exactement votre question? Et s'il vous plaît donner plus de détails sur ce que vous travaillez. Quel genre de boucle as-tu, et où? –

+0

Veuillez indiquer le code de la boucle 'for' pour commencer. – Gordon

+0

Je ne sais pas où la boucle $ _POST est utilisé, mais vous pouvez le faire: (.... CurrPost $ '=' currPostValue $ '
' PHP_EOL) foreach ($ _POST comme $ currPost => $ currPostValue) { écho ; } – AlexV

Répondre

1

Je donne les attributs de nom de mes boutons submit en utilisant les critères suivants:

name="submit[which_action][which_category]" 

Par exemple, pour votre « Mise à jour » bouton pour la catégorie 123:

name="submit[update][123]" 

Lorsque l'utilisateur clique sur un des les boutons de soumission, pour déterminer le bouton spécifique sur lequel l'utilisateur a cliqué, il suffit de vérifier $ _POST ['submit'] dans votre code PHP:

$a1 = $_POST['submit']; 
$which_action = reset(array_keys($a1)); 
$which_category = reset(array_keys($a1[$which_action])); 
1

Eh bien i utiliserait quelque chose comme ceci:

<fieldset> 
<!-- product info --> 
<input name="productName[paint]" /> 
<input name="productName[edit]" /> 
<input name="productName[delete]" /> 
<input name="productName[cancel]" /> 
</fieldset> 

de cette façon lorsque vous l'obtenez sur le côté serveur tout sera bien rangé dans les tableaux imbriqués.