我使用一个模块AJAX d_quickcheckout在opencart 2.1上使用更快的结帐页面(不是默认的)。问题是payment address部分上的一个字段不是由default选择的,这是region/state字段。目前,该字段具有存储所在的区域/状态。
即使我删除了这个字段,这个region/state也不会显示在结帐页面上,而是显示在invoice上!
我希望这个字段类似于--Select State--,或者是默认的value="0"和$text_none
以下是我认为必须更改的两个代码块:
HTML
<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:
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);
}
});
}发布于 2018-03-16 09:18:25
您可以对$.ajax调用进行注释,并且下拉列表将始终为空。
发布于 2018-03-16 09:27:35
您可以尝试这个代码块,而不是选择currect:
<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调用。
https://stackoverflow.com/questions/49277895
复制相似问题