2010-02-11 3 views
0

У меня есть цикл for, который на самом деле отображает название продукта и несколько кнопок: Edit, Update, Cancel Для каждого продукта, который я показываю, у него будет свой собственный набор кнопок Edir, Update и Cancel как показано ниже.

Paint Edit Update Отменить

Я хочу перебрать кнопки, так что для каждой категории, я могу выполнять различные действия. Я думал об использовании чего-то типа btn_edit1, btn_edit2 для имени кнопки и использования цикла for. 1, 2 являются идентификаторами категории. Возможно, я не совсем понятен. Простите за это. Может ли кто-нибудь дать мне несколько советов?

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>"; 
    } 

Я хочу сделать что-то вроде

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

} 

так что, когда я нажимаю на кнопку, она выполняет действие в зависимости от CATEGORY_ID.

Я попытался это, как предложил:

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

Теперь в моем классе, у меня есть:

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

Но, я получаю ошибку: не определено индекс представить

+1

Я не понимаю, в чем именно заключается ваш вопрос? И, пожалуйста, дайте более подробную информацию о том, над чем вы работаете. Какая у вас петля и где? –

+0

Отправьте код цикла 'for' для начала. – Gordon

+0

Не знаю, где цикл в $ _POST используется, но вы можете сделать следующее: (.... $ CurrPost '=' $ currPostValue '
' PHP_EOL) Еогеаспа ($ _POST в $ currPost => $ currPostValue) { эха ; } – AlexV

ответ

1

Я дал бы имя атрибуты моих кнопок представляют с помощью следующей схемы:

name="submit[which_action][which_category]" 

Например для кнопки «Обновить» для категории 123:

name="submit[update][123]" 

Когда пользователь нажимает любой из кнопки отправки, чтобы определить, какую конкретную кнопку пользователь нажал, вам просто нужно проверить $ _POST ['submit'] в вашем PHP-коде:

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

ну я будет использовать примерно следующее:

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

Таким образом, когда вы доберетесь до сервера, все будет хорошо и аккуратно во вложенных массивах.