更新下拉列表后更改值

时间:2017-02-17 08:15:21

标签: php opencart dropdown

我有一个产品配置器的下拉列表,我可以在其中选择产品。所选产品具有附加信息(是或否),在选择适当的产品时会显示该信息。产品配置器有几种产品可供选择。

如果其中一个产品的附加信息为“否”,则最终消息为“否”。

如果我现在选择信息从“否”变为“是”的产品,那么最终消息也应该更改为“是”而不刷新页面。

选择框代码如下:

      <select name="<?php echo $ot['option_type']; ?>">
        <?php foreach ($ot['gp_child'] as $key => $child) { $child_id = $child['child_id']; ?>
        <option value="<?php echo $child_id; ?>" id="<?php echo $ot['option_type'] . '-' . $child_id; ?>" data-hide="<?php echo $child['child_to_hide']; ?>"><?php echo $child['name']; ?></option>
        <?php } ?>
      </select>

我必须显示的最终信息是:

    <?php if ($child['info'][$field_name] == 'No') { ?>
      <h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class="red">No</span></h5>
    <?php } else { ?>
      <h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class="green">Yes</span></h5>
    <?php } ?>

这适用于初始选定的产品,但当我在下拉菜单中更改值时,当然不会改变。我需要添加什么才能使其正常工作?

附加信息 - 如果我在选择框中选择其他值,则还会更新以下字段中的值:

      <?php foreach ($gp_child_info as $field_name => $field_text) if($child['info'][$field_name]) { ?>
      <div><?php echo $field_text; ?>: <?php echo $child['info'][$field_name]; ?></div>
      <?php } ?>

此字段$ child ['info'] [$ field_name]包含应触发最终消息的Yes / No值。

最多有5行带有下拉列表用于选择产品,每个行在$ child ['info'] [$ field_name]字段中的值为Yes / No.因此,只要其中一行的值为“否”,则最终消息也为“否”。

print_r的结果($ ot ['gp_child']);

数组([53] =&gt;数组([child_id] =&gt; 53 [info] =&gt;数组([product_id] =&gt; 53 [gp_parent_id] =&gt; 0 [名称] =&gt; abart [ description] =&gt; [meta_title] =&gt; test [meta_description] =&gt; [meta_keyword] =&gt; [tag] =&gt; 1234ZV [model] =&gt; test [sku] =&gt;是 [upc] =&gt; [ean] =&gt; [jan] =&gt; [isbn] =&gt; [mpn] =&gt; [location] =&gt; [数量] =&gt; -1 [delivery_days] = &gt; 14 [stock_status] =&gt; Nicht a Lager [image] =&gt; catalog / car-logo / abarth.png [manufacturer_id] =&gt; [manufacturer] =&gt; [price] =&gt; 100.0000 [special] = &gt; [reward] =&gt; [points] =&gt; 0 [tax_class_id] =&gt; 0 [date_available] =&gt; 2017-02-10 [weight] =&gt; 0.00kg [weight_class_id] =&gt; 1 [长度] =&gt; 0.00cm [宽度] =&gt; 0.00cm [高度] =&gt; 0.00cm [length_class_id] =&gt; 1 [减法] =&gt; 1 [等级] =&gt; 0 [评论] =&gt; 0 [minimum] =&gt; 1 [sort_order] =&gt; 1 [status] =&gt; 1 [date_added] =&gt; 2017-02-15 14:30:33 [date_modified] =&gt; 2017-02-17 17: 17:22 [已查看] =&gt; 42 [股票] =&gt; Nicht a Lager)[image] =&gt;数组([popup] =&gt; http://2302.speedone.ch/image/cache/catalog/car-logo/abarth-600x400.png [thumb] =&gt; http://2302.speedone.ch/image/cache/catalog/car-logo/abarth-50x50.png [swap] =&gt; http://2302.speedone.ch/image/cache/catalog/car-logo/abarth-50x50.png)[name] =&gt; abart [attributes] =&gt; Array()[price] =&gt; CHF 100.00 [特殊] =&gt; [tax] =&gt; CHF 100.00 [nocart] =&gt; [child_to_hide] =&gt; ))

触发Yes / No消息的结尾处的值是[SKU]

1 个答案:

答案 0 :(得分:0)

Php是服务器端脚本语言,根本无法做到这一点。您需要的是客户端网站编程。

其中一个是jquery,它会更方便:

<强> HTML:

<select class="select-name" name="<?php echo $ot['option_type']; ?>">
    <?php foreach ($ot['gp_child'] as $key => $child) { $child_id = $child['child_id']; ?>
    <option data-sku="<?php echo $child['info']['sku']; ?>" value="<?php echo $child_id; ?>" id="<?php echo $ot['option_type'] . '-' . $child_id; ?>" data-hide="<?php echo $child['child_to_hide']; ?>"><?php echo $child['name']; ?></option>
    <?php } ?>
 </select>

<div class="message">
 <?php if ($child['info'][$field_name] == 'No') { ?>
  <h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class="red">No</span></h5>
<?php } else { ?>
  <h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class="green">Yes</span></h5>
<?php } ?>
 </div>

<强> JQUERY:

<script>
 $(".select-name").on("change",function(){
var length = $(".select-name option:selected[data-sku=No]").length;
if(length > 0) { // at least one is no
    $(".message").html("<h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class='red'>No</span></h5>");
} else {
    $(".message").html("<h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class='green'>Yes</span></h5>");
}
});
</script>

此处的工作代码段:

$(".select-name").on("change",function(){
    var value = $(this).find("option:selected").text();
    if(value == "No") {
        $(".message").html("<h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class='red'>No</span></h5>");
    } else {
        $(".message").html("<h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class='green'>Yes</span></h5>");
    }
  });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select class="select-name" name="">
    <option selected>No</option>
    <option>Yes</option>
 </select>

 <div class="message">
  <h5>Diese Produktekonfiguration ist für den CH-Strassenverkehr Zugelassen: <span class="red">No</span></h5>
 </div>