Bonjour,
Je cherche depuis deux jours sans succès, un moyen de rafraichir une boite de dialogue que je crée de la façon suivante :
Ensuite en fonction de ma logique j'invoque la fonction listePersonnes pour ouvrir cette boite en chargeant via AJAX le résultat d'une procédure php. Cela marche très bien
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 function creationBoiteM() { $( "#boiteM1" ).dialog({ "autoOpen" : false, "modal" : true, "height" : 760, "width" : 1260, "background" : 'black', "buttons" : { "Retour" : function( ){ $( this ).dialog( "close" ); } } }); }
La procédure "listePersonnes.php" crée dans la boite de dialogue une table de noms . Lorsqu'on clique sur un des noms, je souhaiterais afficher à côté la photo de la personne et divers renseignements.
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 var monString = ""; function executeAjax(id,url,parm,mode) { var monString=""; $.ajax({ type: "POST", url: url, data: {options: parm} , async: mode, dataType: 'html', cache: false, success: function( msg ) { $(id).html( msg ); monString=msg; } }); return monString; } function listePersonnes() { var b = "#boiteM1" ; wk= executeAjax(b,"listePersonnes.php","",true); $(b).dialog( "option", "title", "Affichage par personne"); $(b).dialog( "open" ); }
évidement je pourrais fermer la boite et la recréer complètement, mais cela donnerait une impression visuelle génante (clignotement). Je souhaiterais donc ne pas rafraichir la liste des noms (donc la table) mais changer simplement les données relatives à la personne sélectionnée. A noter que le clic sur un nom marche bien, j'exécute une fonction (pour l’instant c'est juste alert()).
Est-ce possible ? Si oui puis-je avoir un exemple ?
J'ai aussi remarqué (du fait que la table des noms est très grande), que le temps d'affichage de la boite de dialogue est beaucoup plus long avec "async: false" qu'avec "async: true" (5 à 6 secondes contre 1 seconde) intuitivement j'aurais pensé le contraire.
Merci d'avance pour toutes aides, suggestions ou commentaires.
Gérard
Partager