Назначить выбранное значение значением POST - PullRequest
0 голосов
/ 31 марта 2011

Я пытаюсь сделать выбранное значение в качестве значения POST в корзине.

Фрагмент:

<div class="extra-option">
  <ul>
    <li><span>Size:</span></li>
    <? foreach ($product->extra_options as $option):
      $control_name = 'grouped_products[' . $product->id . '][product_extra_options]['.$option->option_key.']';
      $posted_options = post('grouped_products[' . $product->id . '][product_extra_options]', array());
      $is_checked = isset($posted_options[$option->option_key]);
    ?>
    <input name="<?= $product->id ?>"
      <?= radio_state($is_checked) ?> 
      id="extra_option_<?= $option->id ?>"
      value="<?= $option->option_key ?>"
    type="radio"/>
    <label for="extra_option_<?= $option->id ?>"><?= h($option->description) ?>:</label>
    <? endforeach ?>
  </ul>
  <div class="clear"></div>
</div>

Фрагмент обработчика AJAX:

function on_addProductGroupToCart($controller) {
  foreach(post('grouped_products', array()) as $product_id => $product) {
    $_POST['product_cart_quantity'] = 1;
    $_POST['product_id'] = $product_id;
    $_POST['product_options'] = $product['product_options'];
    $_POST['product_extra_options'] = $product['product_extra_options'];
    $controller->exec_action_handler('shop:on_addToCart');
  }
}

Фрагмент $ POST, с которым мне придется работать:

$_POST['product_extra_options'] = $product['product_extra_options'];

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

Итак, как я могу присвоить переменной POST выбранное значение?

Спасибо !!!

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Никогда не следует присваивать значение $ _POST [] или $ _GET [] - только извлекать значения из них.Для заполнения переменных $ _POST вам необходимо отправить данные через форму.

0 голосов
/ 31 марта 2011

Вы присваиваете переменные записи через атрибут value (или их текст, если это текстовое поле) с ключом массива POST, являющимся атрибутом name. Например:

<input type="text" name="myInput" />

Теперь, когда форма отправлена, вы можете захватить введенный текст, используя:

$_POST['myInput']

Для чего-то вроде флажка (или переключателя), атрибут value определяет содержимое переменной POST:

<input type="checkbox" name="myCheckbox" value="thisIsChecked" />

Теперь вы увидите, проверяется ли это с помощью простого условия:

if (!empty($_POST['myCheckbox'])) {
   do something; }

Вы также можете сделать эти атрибуты динамическими с помощью PHP, как вы уже знаете. Пример:

<?php foreach ($myArray as $arrayValue) {
echo '<input type="checkbox" name="'.$arrayValue.'" value="thisIsChecked" />
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...