使用jQuery

时间:2016-08-18 13:04:52

标签: javascript php jquery codeigniter

我在填写CodeIgniter表单方面遇到了一些问题。

目前,我正在这样做:

查看:

       <div class="line_grid" style="height: 45px; overflow: visible;">
            <div class="g_5">
                <div class="g_3 label"><?php echo form_label('Partenaire commercial : ', 'partenaire'); ?></div>
                <div class="g_9"><?php echo form_dropdown('partenaire', $partenaires,$preselect_partenaire,'onchange = "loadNewCommerciaux(this)" id="partenaire" class="chzn-select" title="" '); ?></div>
                <?php echo form_error('partenaire'); ?>
            </div>
        </div>  
        <div class="line_grid" style="height: 45px; overflow: visible;">
            <div class="g_5">
                <div class="g_3 label"><?php echo form_label('Commercial : ', 'commercial'); ?></div>
                <div class="g_3"><?php echo form_dropdown('commercial',$commerciaux,set_value('commercial',$this->form_data->commercial),'id="commercial" class="chzn-select" title="" placeholder="Sélectionner..."'); ?></div>
                <?php echo form_error('commercial'); ?>
            </div>
            <div class="g_5">
                <div class="g_3 label"><?php echo form_label('Interlocuteur principal : ', 'principal'); ?></div>
                <div class="g_3"><?php echo form_dropdown('principal', $intervenants,set_value('principal',$this->form_data->principal),'id="principal" class="chzn-select" title="" placeholder="Sélectionner..."'); ?></div>
                <?php echo form_error('principal'); ?>
            </div>

        </div>

Javascript:

<script>
function loadNewCommerciaux(that){
    urlRequest = window.location.protocol.toString() +"//" +
                                window.location.hostname.toString()  + 
                                window.location.port.toString()  + "/cartel/projets/refillPartenairesCommerciaux/" + that.value
    $.post(
        urlRequest,

        function(data){ 
            alert(result);
            //$("#commercial").load("contenu.html");
        },

        'text' 
     );
}

控制器:

function refillPartenairesCommerciaux($id_structure){

    $partenaires = array();
    $contacts = $this->db->query('SELECT id, prenom, nom FROM contacts WHERE structure='.$id_structure)->result();
    foreach($contacts as $partenaire){
        $partenaires[$partenaire->id] = $partenaire->prenom . ' ' . $partenaire->nom;
    }

    echo json_encode($partenaires);

}

我想重新填写我的form_dropdown“商业广告”,但我不知道该怎么做。 目前,Ajax请求允许我执行新查询并返回数据。如何在不重新加载整个页面的情况下使用查询返回的新数据重新填充form_dropdown?

提前谢谢你,抱歉英语不好。

1 个答案:

答案 0 :(得分:0)

试试这个: 在控制器中:

function refillPartenairesCommerciaux($id_structure){

    $html = '';
    $contacts = $this->db->query('SELECT id, prenom, nom FROM contacts WHERE structure='.$id_structure)->result();
    foreach($contacts as $partenaire){
        $html .= '<option value="'.$partenaire->id.'">'.$partenaire->prenom . ' ' . $partenaire->nom.'</option>';
    }

    echo json_encode($html);

}

在javascript中:

解码响应(数据)并加载到您的选择标记

$("#commercial").html(JSON.parse(data));