Bonjour,
Je ne sais pas comment m'y prendre pour charger une vue en ajax.
J'ai une vue html : newHTML.php
J'ai prévu un emplacement dans ma vue _list.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 <fieldset> <legend>Ajout de pièce</legend> <div id="log"></div> <form class="form-horizontal" action="" method="POST" > <div class="form-group"> <label class="col-sm-2 control-label">cde_id</label> <div class="col-sm-10"><select name="cde_id" class="form-control" ><option value="1">1</option><option value="2">2</option></select></div> </div> <div class="form-group"> <label class="col-sm-2 control-label">p_id</label> <div class="col-sm-10"><input type="text" name="p_id" value="" class="form-control" /></div> </div> <div class="form-group"> <label class="col-sm-2 control-label">qte</label> <div class="col-sm-10"><input type="text" name="qte" value="" class="form-control" /></div> </div> <input type="hidden" type="text" name="tokenAjax" value="1480723320####e606a7b5accd57aed054d2c7d862e7bc967c9a81" /> <div class="form-group"> <div class="col-sm-offset-2 col-sm-10"> <input type="submit" class="btn btn-success" value="Ajouter" /> <a class="btn btn-link" href="index.php?:nav=mkCdeLignes::list">Annuler</a> </div> </div> </form> </fieldset>
Sans recharger la vue list, en jQuery, j'utilise la fonction suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <!-- emplacement pour les echanges --> <div id = "dialogue" title = "Fenêtre"> <p></p> </div>
Dans mon contrôleur main, j'ai la méthode suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 jQuery(document).ready(function($){ // Là on peut utiliser $() en ayant la certitude que c'est jQuery, sans conflit possible $(document).on("click", "#btn_ajout", function(evt) { alert("Vous avez sélectionné : " + $(this).text()); evt.preventDefault(); // stop le comportement naturel $("#dialogue p").load("index.php?:nav=mkCdeLignes::newHTML"); }); });
Comment charger dynamiquement juste le bout de code html de la vue newHTML sans être obligé de placer ce bout de code dans un fichier html enregistré dans le répertoire /public/newHTML.html de mon site.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public function _newHTML(){ //$this->oLayout->setLayout ( 'ajxlayout' ) ; // changement de layout vide pour notre affichage //_root::setConfigVar('site.mode','prod'); // desactive la barre Debug $oView=new _view('mkCdeLignes::newHTML'); //$oPluginXsrf=new plugin_xsrf(); //$oView->token=$oPluginXsrf->getToken(); $this->oLayout->add('main',$oView); // vue pour le script $oView=new _view('mkCdeLignes::ns'); $this->oLayout->add('main',$oView); //echo "<h1>Heelo</h1>" ; }
Cordialement
Partager