首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >opencart 2.1中的selected="selected“字段

opencart 2.1中的selected="selected“字段
EN

Stack Overflow用户
提问于 2018-03-14 12:32:59
回答 2查看 173关注 0票数 0

我使用一个模块AJAX d_quickcheckoutopencart 2.1上使用更快的结帐页面(不是默认的)。问题是payment address部分上的一个字段不是由default选择的,这是region/state字段。目前,该字段具有存储所在的区域/状态。

即使我删除了这个字段,这个region/state也不会显示在结帐页面上,而是显示在invoice上!

我希望这个字段类似于--Select State--,或者是默认的value="0"$text_none

以下是我认为必须更改的两个代码块:

HTML

代码语言:javascript
复制
<select name="payment_address[address_id]" style="width: 100%; margin-bottom: 15px;" data-refresh="3">
          <?php foreach ($addresses as $address) { ?>
              <option value="<?php echo $address['address_id']; ?>" <?php echo ($address['address_id'] == $payment_address['address_id']) ? 'selected="selected"' : ''; ?>> 
                <?php echo $address['firstname']; ?> 
                <?php echo $address['lastname']; ?>, 
                <?php echo $address['address_1']; ?>, 
                <?php echo $address['city']; ?>, 
                <?php echo $address['zone']; ?>, 
                <?php echo $address['country']; ?> 
              </option>
          <?php } ?>
        </select>

AJAX:

代码语言:javascript
复制
function refreshPaymentAddessZone(value) {

    $.ajax({
        url: 'index.php?route=module/quickcheckout/country&country_id=' + value,
        dataType: 'json',
        beforeSend: function() {

        },
        complete: function() {

        },      
        success: function(json) {

            if (json['postcode_required'] == '1') {
                $('#payment-postcode-required').show();
            } else {
                $('#payment-postcode-required').hide();
            }

            html = '<option value=""><?php echo $text_select; ?></option>';

            if (json['zone'] != '') {

                for (i = 0; i < json['zone'].length; i++) {
                    html += '<option value="' + json['zone'][i]['zone_id'] + '"';
                    if (json['zone'][i]['zone_id'] == '<?php echo $payment_address['fields']['zone_id']['value']; ?>') {
                        html += ' selected="selected"';
                    }

                    html += '>' + json['zone'][i]['name'] + '</option>';
                }
            } else {
                html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';
            }

            $('#payment_address_wrap select[name=\'payment_address[zone_id]\']').html(html);
        },
        error: function(xhr, ajaxOptions, thrownError) {
            console.log(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
        }
        });
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-16 09:18:25

您可以对$.ajax调用进行注释,并且下拉列表将始终为空。

票数 0
EN

Stack Overflow用户

发布于 2018-03-16 09:27:35

您可以尝试这个代码块,而不是选择currect:

代码语言:javascript
复制
<select name="payment_address[address_id]" style="width: 100%; margin-bottom: 15px;" data-refresh="3">
    <option value="0">-- Select State --</option>
      <?php foreach ($addresses as $address) { ?>
          <option value="<?php echo $address['address_id']; ?>"> 
            <?php echo $address['firstname']; ?> 
            <?php echo $address['lastname']; ?>, 
            <?php echo $address['address_1']; ?>, 
            <?php echo $address['city']; ?>, 
            <?php echo $address['zone']; ?>, 
            <?php echo $address['country']; ?> 
          </option>
      <?php } ?>
    </select>

如果这还不够,还可以删除AJAX调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49277895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档