IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

showMondialDialog() dans un tableau créé par JS


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut showMondialDialog() dans un tableau créé par JS
    Bonjour a Tous,

    Je vous écris car je rencontre un problème.
    Comment ? Rien d'étonnant me direz vous?
    Oui effectivement.

    Donc j'ai une page qui me permet de créer un tableau en fonction de filtre date (année et mois). Donc après sélection d'un ou plusieurs filtre, un petit coup d'ajax, je récupère mes valeurs de BDD, et je créer un tableau avec les élément dedans.

    Jusque la tout fonctionne. Je tiens a précisé que je N'utilise PAS Jquery, je fais tout avec mes petites mains histoire de m'amuser un peu.

    Allons bon je m'égare, mon probleme maintenant, et bien comme vous avez pu le voir dans le titre je désire quand je click sur le nom de l'un de mes candidats ( oui mon tableau me sort les candidat du test par année grace au filtre), je voudrai donc ouvrire une fenetre fille qui enleve le focus de la mere et qui m'affiche des information plus complete sur mon candidat.

    J'utilise donc la fonction showMondialDialog() , patience je vais copier mon code, et mon pour se faire j'ai besoin de mettre un onclick dans le <td> qui contiens le nom, mais je n'y arrive pas pour cause mon <td> est généré par JS

    Voici ma fonction que je veux appeler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function infoCandidat(theId)
    		{
    			var ret;
    			ret = showMondialDialog("info_can.php","","status=no; center=yes; dialogWidth=400px; dialogHeight=410px; help:no; scroll:yes;");
    		}
    Ici je vous met ma fonction qui creer mon tableau n'oublier pas mon tableau est bien creer et je recoit bien mon xml :
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    function readData(oData) 
    		{
    			$("tableau").innerHTML = "";
    			var nodes   = oData.getElementsByTagName("noeud");
     
    			for (var i=0; i<nodes.length;i++) {
    				leId = nodes[i].getElementsByTagName("id")[0].firstChild.nodeValue;
    				leNom = nodes[i].getElementsByTagName("Nom")[0].firstChild.nodeValue;
    				lePrenom = nodes[i].getElementsByTagName("prenom")[0].firstChild.nodeValue;
    				laSpecialite = nodes[i].getElementsByTagName("specialite")[0].firstChild.nodeValue;
    				leScore = nodes[i].getElementsByTagName("score")[0].firstChild.nodeValue;
    				leSeuil = nodes[i].getElementsByTagName("seuil")[0].firstChild.nodeValue;
     
     
    				td1 = document.createElement("td");
    				td2 = document.createElement("td");
    				td3 = document.createElement("td");
    				td4 = document.createElement("td");
    				td5 = document.createElement("td");
     
    				td1.id= leId;
    				td1.onclick="infoCandidat();";//j'essaye d’insérer le js au td ici
     
    				td1.appendChild(document.createTextNode(leNom));
    				td2.appendChild(document.createTextNode(lePrenom));
    				td3.appendChild(document.createTextNode(laSpecialite));
    				td4.appendChild(document.createTextNode(leScore));
    						if(leScore >= leSeuil)
    						{ laDecision = "Reçu"; }
    						else
    						{ laDecision = "Recalé"; }
    				td5.appendChild(document.createTextNode(laDecision));
     
    				monTr = document.createElement("tr");// on creer une balise
     
     
    				monTr.appendChild(td1);
    				monTr.appendChild(td2);
    				monTr.appendChild(td3);
    				monTr.appendChild(td4);
    				monTr.appendChild(td5);
     
    				$("tableau").appendChild(monTr);
    			}
    		}
    certain d'entre vous la reconnaîtrons peut être vous m'avez aider a la faire fonctionner maintenant juste au cas ou mon code html :
    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
     
    <table >
    				<thead>
    					<tr id="titre"  style="border:1px solid black">
    						<th style="border:1px solid black;width:100px;">Nom</th>
    						<th style="border:1px solid black;width:100px;">prenom</th>
    						<th style="border:1px solid black;width:100px;">specialite</th>
    						<th style="border:1px solid black;width:100px;">Score</th>
    						<th style="border:1px solid black;width:100px;">Decision</th>
    					</tr>
    				</thead>
    				<tbody id="tableau" >
    				</tbody>
     
    			</table>
    Voila Merci d'avance pour l'aide que vous pourrez m'apporter
    Je reste a votre disposition pour de plus amples informations..
    Je vous remercie d'avance pour vos lumières.

  2. #2
    Invité
    Invité(e)
    Par défaut
    pas sur d'avoir bien suivi mais si je me trompe pas c'est de cette endroit dont il est question

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    td1.onclick="infoCandidat();"
    sa doit se faire de cette facon

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    td1.onclick=infoCandidat;

    par contre si tu a besoin d'une reference a l'element la solution est de passer par une fonction anonyme et utilise le mot this

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    td1.onclick=function(){infoCandidat(this)};

  3. #3
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    La méthode c'est showModalDialog, ça ne peut pas être mondial vu que c'est connu uniquement de Internet Explorer (ton script ne marchera donc pas sur Opera, Firefox, Chrome, Safari, ... même avec la fonction correcte).

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Merci pour vos reponse
    Effectivement je me suis rendu compte du modal au lieu du mondial, visiblement firefox a l'air de le faire fonctionner.

    cela fonctionne effectivement avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    td1.onclick=infoCandidat;

    cependant comme je désire lui passer ceci comme paramètre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    leId = nodes[i].getElementsByTagName("id")[0].firstChild.nodeValue;
    Dois je faire comme vous avez dis en passant par une fonction temporaire?

    merci d'avance pour vos précieuse réponse
    Je vous remercie d'avance pour vos lumières.

  5. #5
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nodes   = oData.getElementsByTagName("noeud");
    j'addooore


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    je voudrai donc ouvrire une fenetre fille qui enleve le focus de la mere et qui m'affiche des information plus complete sur mon candidat.
     
    J'utilise donc la fonction showMondialDialog()
    là je tombe de ma chaise

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Je sent un certain sarcasme !
    qui a t'il de si drôle?
    Je vous remercie d'avance pour vos lumières.

  7. #7
    Invité
    Invité(e)
    Par défaut
    si l'element a modifier est celui ou on clic

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    td1.onclick=function(){infoCandidat(this)};
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function infoCandidat(theId){
    
     leId = theId.firstChild.nodeValue;
    
    }

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Bon trêve de plaisanterie :
    J'ai donc une belle fenêtre popup, mais qui malgré le code n'est pas centré
    je suppose que cela a avoir avec le navigateur utilisé, je suis sous firefox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ret = showMondialDialog("info_can.php","","status=no; center=yes; dialogWidth=400px; dialogHeight=410px; help:no; scroll:yes;");
    Pour le moment je ne trouve pas la parade, si jamais vous avez une idée je suis preneur
    Merci d'avance
    Je vous remercie d'avance pour vos lumières.

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Intéressant Mekal

    J'ai fait autre chose :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    td1.onclick=function(){return infoCandidat(this.id)};
    et donc:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function infoCandidat(theId)
    		{
    			var ret;
    			ret = showMondialDialog("info_can.php?monId="+theId,"","status=no; center=yes; dialogWidth=400px; dialogHeight=410px; help:no; scroll:yes;");
    		}
    cela fonctionne chez moi, nos deux code donne t'il la même chose?

    merci d'avance
    Je vous remercie d'avance pour vos lumières.

  10. #10
    Invité
    Invité(e)
    Par défaut
    si c'est l'id de l'element qui t'interesse c'est bon en passant juste par this sa pointe vers l'element directement

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Merci pour ces informations, reste plus que le centrage de la popup et je verrouille ce post;
    Je vous remercie d'avance pour vos lumières.

  12. #12
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Citation Envoyé par darkterreur Voir le message
    Bon trêve de plaisanterie :
    J'ai donc une belle fenêtre popup, mais qui malgré le code n'est pas centré
    je suppose que cela a avoir avec le navigateur utilisé, je suis sous firefox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ret = showMondialDialog("info_can.php","","status=no; center=yes; dialogWidth=400px; dialogHeight=410px; help:no; scroll:yes;");
    Pour le moment je ne trouve pas la parade, si jamais vous avez une idée je suis preneur
    Merci d'avance
    En fait, la fonction 'showMondialDialog' n'existe toujours pas ! c'est 'showModalDialog' !
    Afin d'être cross-browser, il faudrait utiliser window.open qui ne gère pas l'attribut de configuration center. (et d'ailleurs si firefox interprète quand même 'showModalDialog' il doit simplement utiliser window.open à la place, donc pas de 'center')

    EDIT : firefox gère normalement bien 'showModalDialog' depuis sa version 3, et possède bien un attribut 'center' --> https://developer.mozilla.org/fr/DOM...howModalDialog

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Oui oui effectivement honte a moi j'ai fait un vulgaire copier /coller de ma propre faute

    merci pour le liens je regarde de suite
    Je vous remercie d'avance pour vos lumières.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Bon je suis un peu embêté car j'ai tester toutes les valeurs et syntaxe possible et finalement pas de centrage..

    Pourtant c'est bien censé être compatible et j'ai bien la dernière version de Firefox, des fois que l'on me le demande.

    Merci d'avance si quelqu'un a une autre idée.
    Je vous remercie d'avance pour vos lumières.

  15. #15
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Bon cela cela ne serai pas compatible

    j'ai donc broder ceci pour ruser mais cela ne fonctionne toujours pas ai je fait une erreur?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function infoCandidat(theId)
    		{
    			var ret;
     
    			hauteur = "450px";
    			largeur = "450px";
    			positionX = "("+document.body.clientWidth+"-"+largeur+")/ 2 ";
    			positionY = "("+document.body.clientHeight+"-"+largeur+")/ 2 ";
     
    			ret = showModalDialog("info_can.php?monId="+theId,"","status=no; dialogLeft="+positionX+"; dialogTop="+positionY+"; dialogWidth="+largeur+"; dialogHeight="+hauteur+"; help:no; scroll:yes;");
    		}
    Merci d'avance pour votre précieuse aide .
    Je vous remercie d'avance pour vos lumières.

  17. #17
    Membre confirmé Avatar de nadox
    Homme Profil pro
    Développeur
    Inscrit en
    Février 2010
    Messages
    360
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 360
    Points : 551
    Points
    551
    Par défaut
    Les attributs de configuration sont en notation 'camelCase' pour le showModalDialog de ie. Elle sont en minuscules pour celui de firefox...

    Il va surement falloir gérer le navigateur du client pour avoir un rendu identique...

    tiens, voici une méthode qui semble fonctionner(bien centrée sur mon firefox) : http://www.nigraphic.com/blog/java-s...-center-screen

  18. #18
    Invité
    Invité(e)
    Par défaut
    le souci dans le code que tu a mis c'est que tout est entre guillemet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    positionX = document.body.clientWidth-(largeur/ 2) ;
    positionY =document.body.clientHeight-(largeur/ 2) ;

  19. #19
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    428
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 428
    Points : 123
    Points
    123
    Par défaut
    Bonjour,

    Merci a vous pour votre aide, je pose ici ma solution un code qui fonctionne et centre la fenêtre au milieux d'un écran.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function infoCandidat(theId)
    		{
    			var ret;
     
    			hauteur = 450;
    			largeur = 1000;
    			X = Number(screen.width - largeur)/2;
    			Y = Number(screen.height- hauteur)/2;
     
    			ret = window.showModalDialog("info_can.php?monId="+theId,window,"status:no; dialogLeft:"+X+"px; dialogTop:"+Y+"px; dialogWidth:"+largeur+"px; dialogHeight:"+hauteur +"px; resizable:no; help:no;");
    		}
    Je vous remercie d'avance pour vos lumières.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/04/2013, 23h56
  2. [MySQL] left outer join et concaténation dans un tableau passe par if mais pas par else ?
    Par SpaceFrog dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 08/04/2008, 15h09
  3. [MySQL] Faire une recherche dans un tableau créer par mysql_fetch_array avec in_array
    Par arnaudperfect dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 12/11/2007, 15h13
  4. Réponses: 18
    Dernier message: 17/01/2007, 12h49
  5. URGENt: recherche dans un tableau trié par ordre alphabetiqu
    Par JulPop dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 12/02/2005, 17h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo