我在XAMPP中测试opencart。我添加了extension这个检查邮政编码,并允许基于邮政编码的运输。演示是here。它可能与最新版本不兼容。
代码最初没有工作,经过一些修改后,管理员端工作。我可以插入/修改邮政编码等,这意味着数据库没有问题。
在目录方面,我很无奈。有这个ajax按钮无法正常工作。
<div class="pincode">
<span><strong>Enter pincode to check serviceability:</strong></span><br><br>
<input type="text" name="zip_code" value="" id="zip_code" size="8">
<a id="button_zipcode" class="button" title="Check"><span>Check</span></a><br><br>
<div id="temp_zipcode" style="width:94%;"></div>
使用此脚本启用
$('#button_zipcode').bind('click', function() {
$.ajax({
url: 'index.php?route=product/product/zipcode',
type: 'post',
data: 'zip_code='+$('#zip_code').val(),
dataType: 'json',
success: function(json) {
$('.success, .warning, .attention, information, .error').remove();
if (json['warning']) {
$('#temp_zipcode').html('<div class="warning" style="display: none;">' + json['warning'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.warning').fadeIn('slow');
}
if (json['success']) {
$('#temp_zipcode').html('<div class="success" style="display: none;">' + json['success'] + '<img src="catalog/view/theme/default/image/close.png" alt="" class="close" /></div>');
$('.success').fadeIn('slow');
}
}
});
});
url: 'index.php?route=product/product/zipcode',
这意味着什么?如果它是controller / product / product.php我应该添加什么才能使它工作?代码应该用DB检查邮政编码并提供输出。
还有另一个页面作为目录/ model / localization / zip_code.php,其中有
<?php
class ModelLocalisationZipCode extends Model {
public function getZipCode($zip_code_id) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zip_code WHERE zip_code_id = '" . (int)$zip_code_id . "' AND status = '1'");
return $query->row;
}
public function getCodeByZip($zip_code) {
$query1 = $this->db->query("SELECT * FROM " . DB_PREFIX . "zip_code WHERE zip_code LIKE '" . $zip_code . "' AND status = '1'");
return $query1;
}
}
?>
有没有让它发挥作用? 提前谢谢......
答案 0 :(得分:2)
在catalog/controller/product/product.php
添加以下代码:
public function zipcode() {
$this->language->load('product/zipcode');
$this->load->model('localisation/zip_code');
$json = array();
if (isset($this->request->post['zip_code'])) {
$zip_code = $this->request->post['zip_code'];
} else {
$zip_code = 0;
}
$zone_data = $this->model_localisation_zip_code->getCodeByZip($zip_code);
if($zone_data->num_rows == 0)
{
$json['warning'] = sprintf($this->language->get('text_warning'));
}
else
{
$city_name = $zone_data->row['city_name'];
$state_name = $zone_data->row['state_name'];
$zone_name = $zone_data->row['zone_name'];
$json['success'] = sprintf($this->language->get('text_success'), $city_name, $state_name, $zone_name);
}
$this->response->setOutput(json_encode($json));
}