我正在尝试将选定的值设置为购物车中的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 Handler片段是:
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变量指定为选定值?
感谢!!!
答案 0 :(得分:1)
你永远不应该为$ _POST []或$ _GET []赋值 - 只从它们中检索值。 要填写$ _POST变量,您需要通过表单提交数据。
答案 1 :(得分:0)
您可以通过值属性(或文本框中的文本,如果它是文本框)分配post变量,其中POST数组键是name属性。例如:
<input type="text" name="myInput" />
现在,提交表单后,您可以使用以下方法获取他们输入的文本:
$_POST['myInput']
对于像复选框(或单选按钮)这样的东西,它是赋值POST变量内容的value属性:
<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" />
}