代码之家  ›  专栏  ›  技术社区  ›  tklustig

如何使用enablepletyURL=>true定义$.get URL

  •  0
  • tklustig  · 技术社区  · 6 年前

    如果 enablePrettyUrl 将设置为 false 以下内容:

    <?php
    $script = <<< JS
       $('#zip_code').change(function(){
           var zipId=$(this).val();
           $.get('index.php?r=locations/get-city-province',{zipId:zipId},function(data){
           var data=$.parseJSON(data);
           alert(data.city+" liegt in "+data.province+"! Die Id ist "+zipId);
           $('#customers-city').attr('value',data.city);
           $('#customers-province').attr('value',data.province);
       });
    });
    
    JS;
    $this->registerJS($script);
    ?>
    

    如果 启用prettyURL 将被设置 true 以下内容:

     $.get('locations/get-city-province',{zipId:zipId},function(data){
    

    以下是规则 UrlManager 以下内容:

    'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => true,
        'enableStrictParsing' => true,
        'rules' => [
            'locations' => 'locations/index',
            'locations_create' => 'locations/create',
            'locations_delete' => 'locations/delete',
            'locations_update' => 'locations/update',
            'locations_SaveAsNew' => 'locations/save-as-new',
            'locations_pdf' => 'locations/pdf',
            'locations_view' => 'locations/view',
            // ...
        ],
    ],
    

    有什么想法,如何编码 $.get 以正确的方式? 控制器的方法如下:

    public function actionGetCityProvince($zipId) {
        $location = Locations::findOne($zipId);
        echo Json::encode($location);
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Insane Skull    6 年前

    Url::to() Url::toRoute()

    <?php
    $url = yii\helpers\Url::to(['locations/get-city-province']);
    $script = <<< JS
        $('#zip_code').change(function(){
            var zipId = $(this).val();
            $.get('$url', {zipId:zipId}, function(data){
                var data = $.parseJSON(data);
                alert(data.city+" liegt in "+data.province+"! Die Id ist "+zipId);
                $('#customers-city').attr('value',data.city);
                $('#customers-province').attr('value',data.province);
            });
       });
    JS;
    $this->registerJS($script);
    ?>