11549 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

C'est un fichier php appelé par ajax qui doit créer le .tabs, cependant il ne le crée pas il reste avec les balises <ul><li>

Comment faire ?

Bien à vous
Modifié par lausti (01 Mar 2012 - 16:15)
Hello.

Je suppose que tu parles d'un jQuery Ui tabs?

Si c'est le cas, tu n'as pas d'autres choix que de faire un appel au .tabs dans ton callback d'ajax, après avoir inséré ton HTML dans le DOM.

Une autre solution (plus sale, mais préférable selon les cas) est de placer un petit script inline dans le HTML chargé via ajax pour initialiser le tabs.
Oui je parle bien du .tabs.

Cependant voilà ce que j'ai fait :

$.ajax({
type :"post",
url : xxxxx.php,
data : mydata,
succes : function(msg){
$("#myTabs").tabs();
}
});

mais cela ne fonctionne pas, que dois je faire

merci
Le HTML est censé être inséré via l'ajax? Une page en ligne aiderait grandement à identifier le problème.
Malheureusement je ne sais pas mettre cette page en ligne, car tout tiens dans du mvc sécurisé dans une dmz.
dans xxxxx.php se trouve les lignes de code pour créer le tabs en format html sans balise <script>
$this->layout='ajax';
//header('content-type: application/json');
$h = getallheaders();
$o = new stdClass();
$source = file_get_contents('php://input');

$this->loadModel('SERVERS_TAGS');
$this->SERVERS_TAGS->table = 'servers_tags';

$conditions = 'servers_tags.server_id in ('.$source.')';
$join = array('tags'=>'servers_tags.tag_id = tags.tag_id',
'scripts_tags'=>'tags.tag_id = scripts_tags.script_id',
'scripts'=>'scripts_tags.script_id = scripts.script_id');
$group = '';
$order = '';
$rApplicationServers = $this->SERVERS_TAGS->find(array(
'fields' => 'scripts.script_id,scripts.script_name',
'conditions' => $conditions,
'join' => $join,
'order' => $order));

//debug($rApplicationServers);
echo ('<ul>
<li><a href="#applicationSelector-3">Runner</a></li>
</ul>
<div id="applicationSelector-3">
</div>
');

Voilà le code dans xxxxx.php
Tu créer ton html, tu le récupères via ajax, mais tu ne l’insères pas. Ton callback doit être quelque chose du genre
success: function(msg){
	$("#endroitOuAjouterDuContenu").append(msg);
	$("#myTabs").tabs();
}


PS: C'est success, pas succes. Smiley cligne
Modifié par Florian_R (01 Mar 2012 - 16:54)
A défaut de page en ligne, crée un jsFiddle avec un code minimaliste reproduisant ton souci (protip : on peux simuler de l'ajax sur jsFiddle, la doc est assez explicite).