2016-08-18 7 views
1

Ich habe einige Probleme, ein CodeIgniter Formular aufzufüllen.Füllen Sie ein Codeigniter-Formular mit jQuery

Derzeit mache ich das:

Ausblick:

 <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' 
    ); 
} 

Controller:

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); 

} 

Ich möchte meine form_dropdown "kommerzielle" auffüllen, aber ich habe keine Ahnung, wie es geht. Derzeit kann ich mit der Ajax-Anfrage eine neue Abfrage durchführen, und die Daten werden zurückgegeben. Wie kann ich meinen form_dropdown mit den neuen Daten, die von der Abfrage zurückgegeben werden, auffüllen, ohne die gesamte Seite neu zu laden?

Vielen Dank im Voraus und Entschuldigung für schlechtes Englisch.

+0

Elobarate mehr über das Thema und was Sie brauche –

+0

Ich benutze den Formularhelfer dafür. Dann könnten Sie in Ihrer Ansicht '' Verwenden und CI wird das Formular nach der falschen Übermittlung auffüllen. Weitere Informationen: http://www.codeigniter.com/user_guide/helpers/form_helper.html – StackerStan

Antwort

0

Try this: In Controller:

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); 

} 

In javascript:

dekodieren Antwort (Daten) und die Last auf Ihren Tag select

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