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 に答える