通过城市联动实时将地址显示到text中

复制代码
<div class="form-group field-supplier-sort <?php if($model->getErrors('province_id') || $model->getErrors('city_id') || $model->getErrors('district_id')):?>has-error<?php else:?>has-success<?php endif;?>">
    <label class="control-label col-sm-2" for="supplier-sort">配电室所在地区</label>
    <div class="col-sm-10">
        <div class="form-inline citylist">
            <?=Html::activeDropDownList($model, 'province_id', ArrayHelper::merge([0=>'请选择省份'], Area::getArrayForInput(0)), ['class'=>'input-sm form-control', 'tabindex'=>5]);?>
            <?=Html::activeDropDownList($model, 'city_id', ArrayHelper::merge([0=>'请选择城市'], Area::getArrayForInput($model->province_id)), ['class'=>'input-sm form-control', 'tabindex'=>5])?>
            <?=Html::activeDropDownList($model, 'district_id', ArrayHelper::merge([0=>'请选择区域'], Area::getArrayForInput($model->city_id)), ['class'=>'input-sm form-control', 'tabindex'=>5])?>
        </div>
        <div class="help-block help-block-error "><?=$model->getFirstError('province_id') . $model->getFirstError('city_id') . $model->getFirstError('district_id')?></div>
    </div>
</div>
<div class="form-group field-concentrator-voltage has-success">
    <label class="control-label col-sm-2" for="concentrator-voltage">地址</label>
    <div class="col-sm-2">
        <input type="text" id="concentrator-address" class="form-control input-sm cityName" name="Concentrator[address]" value="<?=$model->address;?>" >
        <div class="help-block help-block-error "></div>
    </div>
</div>
<input type="text" id="alladdress" class="form-control input-sm" name="Concentrator[add]" value="<?=$model->addressText?>">
<script type="text/javascript">
    function getcitytext(){//城市联动实时显示
        citytext = '';
        $(".citylist select").each(function(){
            if($(this).val()>0){
                citytext += $(this).find('option:selected').text();
            }else{
                citytext += '';
            }
        });
        $("#alladdress").val(citytext);
    }
    $(function(){
        getcitytext();
        $('#concentrator-province_id').change(function(){
            var parent_id = parseInt($(this).val());
            $.post('<?=Url::to(['/ajax/areaoption'])?>', {parent_id:parent_id, d:'请选择城市'}, function(data){
                if(data) {
                    $('#concentrator-city_id').html(data);
                    $('#concentrator-district_id').html('<option>请选择区域</option>');
                    getcitytext();
                }
            });
        });
        $('#concentrator-city_id').change(function(){
            var parent_id = parseInt($(this).val());
            $.post('<?=Url::to(['/ajax/areaoption'])?>', {parent_id:parent_id, d:'请选择区域'}, function(data){
                if(data) {
                    $('#concentrator-district_id').html(data);
                    getcitytext();
                }
            });
        });
        $(document).on("change", "#concentrator-district_id", function () {
            getcitytext();
        });
    });
</script>

class AjaxController extends Controller {
  public function actionAreaoption(){
     $parentId = intval($_POST['parent_id']);
     $default = $_POST['d'];
     $html = '';
     if ($default) {
        $html .= '<option value="0">' . $default . '</option>';
     }
     if ($parentId > 0) {
     $array = Area::getArrayForInput($parentId);
     foreach ($array as $key=>$value) {
        $html .= '<option value="' . $key . '">' . $value . '</option>';
     }
     }
     echo $html;
  }
}
复制代码

 

posted @   py卡卡  阅读(202)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示