Php if状态和下拉列表有问题
我正在修改一个网上商店,在那里一个产品有几个尺寸可供选择。客户使用一个下拉列表来选择他/她想要的尺码。我正试图修改它,以便当某个特定大小的股票用完$in_stock时变为0,该特定大小的下拉列表中的选项将添加文本“-out”。到目前为止,这就是我所拥有的,而我所面临的问题是,当满足$in_stock==0的条件时,文本'-Out'会出现在下拉列表中的每个尺寸上,而不仅仅是已经用完的尺寸。有人能指出我在代码上的错误吗 另外,我如何使缺货的尺码选项变灰,无法选择 如果代码的任何部分没有意义,请询问我正在使用一个名为Lemonstand的电子商务平台。这是它的API 谢谢Php if状态和下拉列表有问题,php,Php,我正在修改一个网上商店,在那里一个产品有几个尺寸可供选择。客户使用一个下拉列表来选择他/她想要的尺码。我正试图修改它,以便当某个特定大小的股票用完$in_stock时变为0,该特定大小的下拉列表中的选项将添加文本“-out”。到目前为止,这就是我所拥有的,而我所面临的问题是,当满足$in_stock==0的条件时,文本'-Out'会出现在下拉列表中的每个尺寸上,而不仅仅是已经用完的尺寸。有人能指出我在代码上的错误吗 另外,我如何使缺货的尺码选项变灰,无法选择 如果代码的任何部分没有意义,请询问我
<label class="title" for="<?= $control_name ?>"><?= h($option->name) ?></label>
<select name="<?= $control_name ?>" onchange="return $(this).getForm().sendRequest('on_action', {onAfterUpdate: init_effects, update: {'product-page': 'shop:product'}})">
<?
$values = $option->list_values();
foreach ($values as $value){
if($in_stock == 0):
$value = $value."- Out";
}
?>
<option <?= option_state($posted_value, $value) ?> value="<?= h($value) ?>"><?= h($value) ?></option>
<? endforeach ?>
</select>
我从$in_stock=$product->om'in_stock',$posted_options;中获得$in_stock剩余股票数;。代码表示获取存储产品信息的表中in_stock列下的任何数字$product是一个对象,它包含有关产品名称、大小、该大小的剩余库存等信息。我不确定$posted_选项是什么,我从Lemonstand API复制了它:这里: foreach$product->options as$选项: $control_name='product_options['.$option->option_key.]'
$posted_options = Shop_ProductHelper::get_default_options($product);
//gets current stock
$in_stock = $product->om('in_stock', $posted_options);
$posted_value = isset($posted_options[$option->option_key]) ? $posted_options[$option->option_key] : null;
?>
<label class="title" for="<?= $control_name ?>"><?= h($option->name) ?></label>
<select name="<?= $control_name ?>" onchange="return $(this).getForm().sendRequest('on_action', {onAfterUpdate: init_effects, update: {'product-page': 'shop:product'}})">
<?
$values = $option->list_values();
var_dump($values);
foreach ($values as $value):
if($in_stock ==119):
$value = $value."- Out";
endif
?>
<option <?= option_state($posted_value, $value) ?> value="<?= h($value) ?>"><?= h($value) ?></option>
<? endforeach ?>
</select>
<? endforeach ?>
你想在哪里结束你的if,我想你的foreach已经结束了??你如何设置$in_股票变量?在我看来,您的$in_股票变量应该在for循环中发生变化,因为每个大小的$in_股票都应该有自己的值。由于$in_stock在for循环中不会改变,当$in_stock所指的任何大小变为0时,如果$in_stock==0,则该行对每个大小都为真。我从$in_stock=$product->om'in_stock',$posted options;中得到剩余的$in_stock股票数;。代码表示获取存储产品信息的表中in_stock列下的任何数字$product是一个对象,它包含有关产品名称、大小、该大小的剩余库存等信息。我不确定$posted_选项是什么,我从Lemonstand API复制了它:这里:我将在这里粘贴整个代码,但我必须再等8个小时才能执行Stackoverflow站点规则:我明白你的观点elitechief21。如何更改代码,使其通过$product对象,为每个尺寸获得$in_库存,而不是为所有尺寸获得相同的值?
$posted_options = Shop_ProductHelper::get_default_options($product);
//gets current stock
$in_stock = $product->om('in_stock', $posted_options);
$posted_value = isset($posted_options[$option->option_key]) ? $posted_options[$option->option_key] : null;
?>
<label class="title" for="<?= $control_name ?>"><?= h($option->name) ?></label>
<select name="<?= $control_name ?>" onchange="return $(this).getForm().sendRequest('on_action', {onAfterUpdate: init_effects, update: {'product-page': 'shop:product'}})">
<?
$values = $option->list_values();
var_dump($values);
foreach ($values as $value):
if($in_stock ==119):
$value = $value."- Out";
endif
?>
<option <?= option_state($posted_value, $value) ?> value="<?= h($value) ?>"><?= h($value) ?></option>
<? endforeach ?>
</select>
<? endforeach ?>