Opencart ajax发布查询到数据库无法正常工作

时间:2013-05-15 19:49:53

标签: php ajax opencart

我在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;
    }
}
?>

有没有让它发挥作用? 提前谢谢......

1 个答案:

答案 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));     
}