0

我正在 XAMPP 中测试 opencart。我添加了这个扩展,它检查邮政编码并允许提供基于邮政编码的运输。演示在这里。它可能与最新版本不兼容。

该代码最初无法正常工作,经过一些修改后,管理方可以正常工作。我可以插入/修改邮政编码等,这意味着数据库中没有问题。

但是在目录方面我很无奈。有这个 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 检查邮政编码并给出输出。

还有另一个页面是 catalog/model/localisation/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;
    }
}
?>

有没有办法让它工作?提前致谢...

4

1 回答 1

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));     
}
于 2013-05-15T20:56:48.727 回答