Charger une vue HTML en ajax
Bonjour,
Je ne sais pas comment m'y prendre pour charger une vue en ajax.
J'ai une vue html : newHTML.php
Code:
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> |
J'ai prévu un emplacement dans ma vue _list.php
Code:
1 2 3 4 5
|
<!-- emplacement pour les echanges -->
<div id = "dialogue" title = "Fenêtre">
<p></p>
</div> |
Sans recharger la vue list, en jQuery, j'utilise la fonction suivante :
Code:
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");
});
}); |
Dans mon contrôleur main, j'ai la méthode suivante :
Code:
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>" ;
} |
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.
Cordialement