Partage
  • Partager sur Facebook
  • Partager sur Twitter

problème avec l'évènement onClick

    9 juillet 2009 à 16:38:06

    bonjour à tous les zéros du monde.
    je reviens avec un nouveau probleme de javascript.

    je cherche à créer un menu vertical qui quand on clique sur la case qui le contient va envoyer une requete AJAX vers une BDD et afficher le résultat dans une fenetre sur le coté de la page. j'utilise un serveur de type WAMP et le framework dojo 1.3 .

    voici le design actuel en version squelettique:

    Image utilisateur

    la création des différents éléemnts du menu marche très bien sauf sur l'évènement onClick.
    j'ai testé 2 solutions :
    [...]
    onClick:getpage(datax,datay)
    [...]
    
    function getpage(site, page)
    {
    ....
    }
    

    cette solution ne me donne pas accès aux arguments que je voudrai passer à la fonction.
    [...]
    onClick:function()
    {
    var args=
    {
    url:"sql.php",
    handleAs:"json",
    handle:function(data)		 								{alert(data);},	 									error:function(error)
    {alert(error);},
    content:
    {"action":"getdata","database":"site","code_page":data[1],"table":data[5]}
    };dojo.xhrGet(args);
    }
    


    quand à celle ci, le menu refuse tout bonnement de se contruire.


    je vous dnne tout le code

    index.php

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <?php
    	if (isset($_GET['site'])) // Si la variable existe
    	{
    		// On se crée une variable $site avec le mot de passe entré
    		$site = $_GET['site'];
    		if($site=="seniors")
    		{
    			$entete="Bienvenue sur le site du Conseil des Seniors";
    			$title="conseil des seniors";
    			$description="loisirs pour les seniors sur nice et les alpes maritimes.";
    			$keywords="senior, loisirs, seniors, danse, internet, informatique, gymnastique ";
    		}
    		if($site=="yamato")
    		{
    			$entete="Bienvenue sur le site du yamato-budo de Nice ";
    			$title="yamato-budo nice";
    			$description="loisirs pour les seniors sur nice et les alpes maritimes.";
    			$keywords="senior, loisirs, seniors, danse, internet, informatique, gymnastique ";
    		}
    		if($site=="admin")
    		{
    			$entete="Bienvenue sur l'interface d'administration du site seniors-paillon.homeip.net";
    			$title="Interface d'administration";
    			$keywords="";
    			$description="Interface d'administration du site seniors-paillon.homeip.net";
    			$site2="portail";
    		}
    	}
    	else // La variable n'existe pas encore
    	{
    		$site = "portail"; // On crée une variable $site vide
    		$entete="Bienvenue sur portail des seniors du paillon";
    		$title="Portail des seniors du paillon";
    		$keywords="";
    		$description="";
    		$site2="portail";
    	}
    	if (isset($_GET['page'])) // Si la variable existe
    	{
    		// On se crée une variable $page avec le mot de passe entré
    		$page = $_GET['page'];
    	}
    	else // La variable n'existe pas encore
    	{
    		$page = "none"; // On crée une variable $page vide
    	}
    	switch($site)
    	{
    		case "none" :	?>
    								<head>
    									<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    								</head>
    								<body>
    									<?php
    										echo utf8_encode("votre demande ne peut aboutir : le site demandé n'existe pas.");
    									?>
    								</body>
    							</html>
    						<?php
    						break;
    		default : 
    					?>
    							<head>
    								<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    								<title>
    									<?php
    										echo $title;
    									?>
    								</title>
    								<meta name="description" content="<?php echo $description;?>" />
    								<meta name="keywords" content="<?php echo $keywords;?>" />
    								<meta name="author" lang="fr" content="segonnes benoit" />
    								<meta name="Revisit-after" content="7 days" />
    								<meta name="reply-to" content="webmaster_site_seniors@orange.fr" />
    								<meta name="robots" content="index,follow" />
    								<style type="text/css">
    									@import "../dojoroot/dijit/themes/tundra/tundra.css";
    									@import "../dojoroot/dojo/resources/dojo.css";
    								</style>
    								<script type="text/javascript">
    									var djConfig=
    									{
    										parseOnLoad: true,
    										isDebug: true
    									};
    								</script>
    								<script type="text/javascript" src="../dojoroot/dojo/dojo.js">
    								</script>
    								<script type="text/javascript" src="../index.js">		
    						   		</script>
    								<link rel="stylesheet" media="screen" type="text/css" title="design" href="style.css" />
    							</head>
    							<body class="tundra">
    								<div id="layout_container">
    								</div>
    							</body>
    						</html>
    					<?php
    					break;
    	}
    ?>
    


    index.js

    dojo.require("dojo.parser");
    dojo.require("dijit.layout.ContentPane");
    dojo.require("dijit.layout.BorderContainer");
    dojo.require("dijit.layout.LayoutContainer");
    dojo.require("dijit.layout.TabContainer");
    dojo.require("dijit.layout.TabController");
    dojo.require("dijit.layout._LayoutWidget");
    dojo.require("dijit.layout.AccordionContainer");
    dojo.require("dijit.layout.AccordionPane");
    dojo.require("dijit.Tree");
    dojo.require("dijit.form.ValidationTextBox");
    dojo.require("dijit.form.DateTextBox");
    
    dojo.addOnLoad(init);
    
    function init ()
    {
    	lc=new dijit.layout.BorderContainer
    	(
    		{
    			style: "min-height: 800px; min-width: 600px;"
    		},
    		"layout_container"
    	);
    	ac=new dijit.layout.AccordionContainer
    	(
    		{
    			region:"leading",
    			style:"min-width:20%"
    		}
    	);
    	ap1=new dijit.layout.AccordionPane
    	(
    		{
    			title:"seniors",
    			content:"<div id=\"seniors\"></div>"
    		}
    	);
    	ac.addChild(ap1);
    	ap2=new dijit.layout.AccordionPane
    	(
    		{
    			title:"yamato",
    			content:"<div id=\"yamato\"></div>"
    		}
    	);
    	ac.addChild(ap2);
    	lc.addChild(ac);
    	tc=new dijit.layout.TabContainer
    	(
    		{
    			region:"center"
    		}
    	);
        cp1=new dijit.layout.ContentPane
    	(
    		{
    			title: "tab 1",
    			content: "tab 1 content",
    			id:"tab1"
    		}
    	);
        tc.addChild(cp1);
        cp2=new dijit.layout.ContentPane
    	(
    		{
    			title: "tab 2",
    			content: "tab 2 content",
    			id:"tab2"
    		}
    	);
        tc.addChild(cp2);
        lc.addChild(tc);
        cpt=new dijit.layout.ContentPane
    	(
    		{
    			content: "top",
    			region:"top",
    			style:"height:10%"
    		}
    	);
        lc.addChild(cpt);
        cpb=new dijit.layout.ContentPane
    	(
    		{
    			content: "bottom",
    			region:"bottom",
    			style:"height:10%"
    		}
    	);
        lc.addChild(cpb);
        tc.startup();
        cpt.startup();
        cpb.startup();
        create_menu();
        lc.startup();
    }
    function create_menu()
    {
    	 menuseniors= new dijit.Menu({style:"min-width:100px;min-height:50px;"},"seniors");
    	 var args=
    	 {
    		 url:"sql.php",
    		 handleAs:"json",
    		 load:function(data)
    		 {
    		 	//alert(data);
    		 	var nbdata=data;
    		 	for(var i=0;i<nbdata;i++)
    		 	{
    		 		var args2=
    		 		{
    		 			url:"sql.php",
    		 			handleAs:"json",
    		 			load:function(data)
    		 			{
    		 				//alert(data);
    		 				menuseniors.addChild
    		 				(
    		 					new dijit.MenuItem
    		 					(
    		 						{
    		 							label:data[2],
    		 							onClick:getpage
    		 						}
    		 					)		
    		 				);
    		 			},
    		 			error:function(error)
    		 			{
    		 				alert(error);
    		 			},
    		 			content:
    		 			{
    		 				"action":"getdata",
    		 				"database":"site",
    		 				"id":i,
    		 				"table":"seniors"
    		 			}
    		 		};
    		 		dojo.xhrGet(args2);
    		 	}
    		 },
    		 error:function(error)
    		 {
    			 alert(error);
    		 },
    		 content:
    		 {
    			"action":"getnbdata",
    			"database":"site",
    			"table":"seniors"
    		 }
    	 };
    	 dojo.xhrGet(args);
    	 menuyamato= new dijit.Menu({style:"min-width:100px;min-height:50px;"},"yamato");
    	 var args=
    	 {
    		 url:"sql.php",
    		 handleAs:"json",
    		 load:function(data)
    		 {
    		 	//alert(data);
    		 	var nbdata=data;
    		 	for(var i=0;i<nbdata;i++)
    		 	{
    		 		var args2=
    		 		{
    		 			url:"sql.php",
    		 			handleAs:"json",
    		 			load:function(data)
    		 			{
    		 				//alert(data);
    		 				menuyamato.addChild
    		 				(
    		 					new dijit.MenuItem
    		 					(
    		 						{
    		 							label:data[2],
    		 							onClick:function()
    		 							{
    		 								var args=
    		 								{
    		 									url:"sql.php",
    		 									handleAs:"json",
    		 									handle:function(data)
    		 									{
    		 										alert(data);
    		 									},
    		 									error:function(error)
    		 									{
    		 										alert(error);
    		 									},
    		 									content:
    		 									{
    		 										"action":"getdata",
    		 						 				"database":"site",
    		 						 				"code_page":data[1],
    		 						 				"table":data[5]
    		 						 			}
    		 						 		};
    		 						 		dojo.xhrGet(args);
    		 							}
    		 						}
    		 					)		
    		 				);
    		 			},
    		 			error:function(error)
    		 			{
    		 				alert(error);
    		 			},
    		 			content:
    		 			{
    		 				"action":"getdata",
    		 				"database":"site",
    		 				"id":i,
    		 				"table":"yamato"
    		 			}
    		 		};
    		 		dojo.xhrGet(args2);
    		 	}
    		 },
    		 error:function(error)
    		 {
    			 alert(error);
    		 },
    		 content:
    		 {
    			"action":"getnbdata",
    			"database":"site",
    			"table":"yamato"
    		 }
    	 };
    	 dojo.xhrGet(args);
    }
    function getpage(site,page)
    {
    	alert(site);
    	alert(page);
    }
    


    notez bien que c'est juste ce f*** de onClick qui me gonfle, le reste, je gere bien.

    merci a tous

    lulu
    • Partager sur Facebook
    • Partager sur Twitter

    problème avec l'évènement onClick

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown