Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction Java et code SQL

    24 août 2011 à 11:59:20

    EDIT :
    Bonjour,

    J'ai crée un page composé d'un carrousel et d'une liste déroulante.

    La liste déroulante permet à mon utilisateur de choisir une ville, une fois ce choix fait, j'ai une fonction en JavaScript qui me permet de changer de fond d'écran pour avoir une image de la ville en fond.

    J'aimerais maintenant pouvoir changer les image de mon carrousel en n'y affichant que les images appartenant à la ville qui aura été choisie dans la liste déroulante.

    Dans mas base de donnée j'ai donnée à chaque image du carrousel l'ID de la la ville à la quelle les images appartiennent.

    voici mon code principal :

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
       <head>
           <title>Projet ISEP</title>
           <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	   
    	   <link rel="stylesheet" type="text/css" media="screen" href="css/screen.css" />
    	   
    	   <style type="text/css" media="screen">
    		.tooltip{width:200px;margin:0;padding:5px;font-size:11px;color:#666;background:#fff;border:5px solid #ccc;}
    		.tooltip p{margin:0;text-align:justify;}
    		</style>
    	   
    	   <script type="text/javascript">
     
    			/* INITIALISATON AJAX (OBLIGATOIRE) */
    			function getXhr(){
    				var xhr = null; 
    				if(window.XMLHttpRequest) { 		/* Firefox et autres */
    					xhr = new XMLHttpRequest(); 
    				} else if(window.ActiveXObject) { 	/* Internet Explorer */
    					try {
    						xhr = new ActiveXObject("Msxml2.XMLHTTP");
    					} catch (e) {
    						xhr = new ActiveXObject("Microsoft.XMLHTTP");
    					}
    				} else { 	/* XMLHttpRequest non supporté par le navigateur */
    					   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    					   xhr = false; 
    				} 
    				return xhr;
    			};
    	 
    				function AffichageCarrouselAjax(idselect) {
    				//alert('ok 1'); 
    				
    					// recuperation id de la ville selectionnee
    					var selt = document.getElementById(idselect);
    					var idville = selt.options[selt.selectedIndex].value;
    					var xhr = getXhr();
    					var htmltexte = '';
    				//alert('idville : '+idville);
    				xhr.onreadystatechange = function()
    				{
    				//alert('ok 2'); 
    					// si on a tout reçu et que le serveur est ok
    					if(xhr.readyState==4 && xhr.status==200){
    									
    						htmltexte = xhr.responseText;
    						// CARROUSEL : On remplit le DIV contenant le carrousel
    						document.getElementById('idcarrousel').innerHTML = htmltexte;
    					}
    				}
    				// fichier a executer et envoi des parametres par POST
    				
    				xhr.open("POST","./_inclus/afficher-carrousel-ville-ajax.php",true);
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// on poste les parametres au fichier php
    				xhr.send("idville="+idville);
    				
    			};
    		</script>
    		
    
    	   
    	   
    	    	<!-- Script initialisation jquery -->
    	   <script type="text/javascript" charset="utf-8" src="http://code.jquery.com/jquery-1.6.2.min.js"></script>
    	   <script type="text/javascript" src="lib/jquery.selectbox-0.5.js"></script>
    	   <script type="text/javascript" src="lib/jquery.qtip-1.0.0-rc3.js"></script>
    	   <script src="lib/custom.js" type="text/javascript"></script>
    	   <script type="text/javascript" src="lib/jquery.simpletooltip-min.js"></script>
    	   
    	   
    	   
    	   <script type="text/javascript">
    			
    			// var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
    			// document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
    		
    			// var pageTracker = _gat._getTracker("UA-3298334-1");
    			// pageTracker._initData();
    			// pageTracker._trackPageview();
    	
    		
    		
    			// $(".anyClass img[title]").tooltip({effect: 'bouncy'});
    		
    			// // create custom animation algorithm for jQuery called "bouncy"
    			// $.easing.bouncy = function (x, t, b, c, d) {
    				// var s = 1.70158;
    				// if ((t/=d/2) < 1) return c/2*(t*t*(((s*=(1.525))+1)*t - s)) + b;
    				// return c/2*((t-=2)*t*(((s*=(1.525))+1)*t + s) + 2) + b;
    			// }
    
    			// // create custom tooltip effect for jQuery Tooltip
    			// $.tools.tooltip.addEffect("bouncy",
    
    			// // opening animation
    			// function(done) {
    				// this.getTip().animate({top: '+=15'}, 500, 'bouncy', done).show();
    			// },
    
    			// // closing animation
    			// function(done) {
    				// this.getTip().animate({top: '-=15'}, 500, 'bouncy', function()  {
    					// $(this).hide();
    					// done.call();
    					// });
    				// }
    			// );
    			// $(".anyClass img[title]").tooltip({effect: 'bouncy'});
    	</script>
    	   
    	    
    		
    
    	
        <script type="text/javascript">
    	//	function f(content){
    		//	alert(content.html());		
    			//}
    		// $(function(){  	$("select:eq(0)").imgDropDown({title:"Paris"});		});
    	</script>
    	
    		
    	
    
    	   
    	   
    	   
    	   
    	   
    	   
       </head>
       
       <body background="fond/1.jpg">
    
    	<div id="en_tete">
    	   <!-- Ici on mettra la bannière -->
    	</div>
     
    	<div id="menu">
    	   <!-- Ici on mettra le menu -->
    	</div>
    	 
    	<div id="corps">
    	   <!-- Ici on mettra le contenu principal de la page (tout le texte quoi) -->
    	   
    	</div>
    	 
    	<div id="pied_de_page">
    	   <!-- Enfin, on mettra en bas de la page le nom de l'auteur, un copyright... -->
    	</div>
    
    
     
    	<div class="option">
    	<form method="post" action="projet_isep.php" id="form_items" name="form_items">
    		<select name="Items" id="Items" onchange="AffichageCarrouselAjax('Items');">
    			
    				<?php
    				try
    				{
    					// On se connecte à MySQL
    					$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    					$bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
    					
    					// On récupère tout le contenu de la table jeux_video
    					$reponse = $bdd->query('SELECT * FROM villes');
    					
    					// On affiche chaque entrée une à une
    					while ($donnees = $reponse->fetch())
    					{
    				?>
    
    				<option value="<?php echo $donnees['id']; ?>"><?php echo $donnees['nom']; ?></option>
    				
    				<?php
    					}
    						$reponse->closeCursor(); // Termine le traitement de la requête
    					}
    						catch(Exception $e)
    					{
    						// En cas d'erreur précédemment, on affiche un message et on arrête tout
    						die('Erreur : '.$e->getMessage());
    					}
    				?>
    		</select>
    	</form>	
    	</div>
    
    	
    
    	<div id="conteneur">
    		<button class="prev"><<</button>
    		<button class="next">>></button>
        </div>
    	
    	
    	
    	<div id="idcarrousel">
    	<div class="anyClass">
    		<ul>
    			<?php
    				try
    				{
    					// On se connecte à MySQL
    					$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    					$bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
    					
    					// On récupère tout le contenu de la table jeux_video
    					$reponse = $bdd->query('SELECT * FROM deals');
    					
    					// On affiche chaque entrée une à une
    					while ($donnees = $reponse->fetch())
    					{
    				?>
    				
    				<li><a href="<?php echo '#'.$donnees['id']?>" class="tooltiplink"><img src="images/<?php echo $donnees['image']; ?>.jpg" alt="" width="100" height="100" /></a></li>
    				
    				<?php
    					}
    							  
    						$reponse->closeCursor(); // Termine le traitement de la requête
    					
    					}
    						catch(Exception $e)
    					{
    						// En cas d'erreur précédemment, on affiche un message et on arrête tout
    						die('Erreur : '.$e->getMessage());
    					}
    				?>
    				
    		</ul>
    	</div>	
    	</div>	
    
    
    
    	<div class="categ">
    		<form method="post" action="projet_isep.php">
    		   <p>
    			   Catégories :<br /><br />
    			   <?php
    				try
    				{
    					// On se connecte à MySQL
    					$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    					$bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
    					
    					// On récupère tout le contenu de la table jeux_video
    					$reponse = $bdd->query('SELECT * FROM categ');
    					
    					// On affiche chaque entrée une à une
    					while ($donnees = $reponse->fetch())
    					{
    				?>
    				
    					<input value="<?php echo $donnees['id']; ?>" name="categ" type="radio" /> <label for="frites"><?php echo $donnees['type']; ?></label><br />
    				
    			
    				<?php
    					}
    							  
    						$reponse->closeCursor(); // Termine le traitement de la requête
    					
    					}
    						catch(Exception $e)
    					{
    						// En cas d'erreur précédemment, on affiche un message et on arrête tout
    						die('Erreur : '.$e->getMessage());
    					}
    				?>
    			</p>
    		</form>
    	</div>
    	
    	
    	
    
    	<?php
    				 
    		try
    		{
    			// On se connecte à MySQL
    			$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    			$bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
    			
    			// On récupère tout le contenu de la table jeux_video
    			$reponse = $bdd->query('SELECT * FROM deals');
    			
    			// On affiche chaque entrée une à une
    			while ($donnees = $reponse->fetch())
    			{
    	?>
    			<div id="<?php echo $donnees['id']; ?>" class="tooltip">
    			
    			<h2><?php echo $donnees['titre']; ?></h2><br />
    			<p><?php echo 'Description : ' .$donnees['detaildeal']; ?></p><br />
    			<p><?php echo 'Adresse : ' .$donnees['adressedeal']; ?></p><br />
    			<p><?php echo 'Expire le : ' .$donnees['findeal']; ?></p><br />
    			<p><?php echo 'Acheteurs : ' .$donnees['nbacheteur']; ?></p><br />
    			<p><?php echo 'Veuillez envoyer un SMS au 80918 avec la syntaxe suivante : Prénom Nom ' .$donnees['id']; ?></p><br />
    				
    			</div>
    			
    	<?php
    			}
    					  
    				$reponse->closeCursor(); // Termine le traitement de la requête
    			
    			}
    				catch(Exception $e)
    			{
    				// En cas d'erreur précédemment, on affiche un message et on arrête tout
    				die('Erreur : '.$e->getMessage());
    			}
    	?>
    
    	
    	
    	
    			
    	
    	
    
    
    
       </body>
    </html>
    


    J’espère m’être mieux fait comprendre.

    Merci
    • Partager sur Facebook
    • Partager sur Twitter
      24 août 2011 à 12:26:13

      j'ai rien de chez rien compris! surtout si tu nous noies dans du code et qu'au final il n'y a pas de question...
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        24 août 2011 à 13:27:25

        Java != JavaScript
        • Partager sur Facebook
        • Partager sur Twitter
          24 août 2011 à 13:40:25

          passe par un tableau a 2 dimensions:

          var tab=new Array();
          tab[idville]=new Array();
          tab[idville][0]='url img1';
          tab[idville][1]='url img2';
          tab[idville][2]='url img3';
          ...
          


          ensuite avec des boucles en php tu remplis ce tableau et le tour est joué!
          • Partager sur Facebook
          • Partager sur Twitter
            24 août 2011 à 14:52:43

            Citation : lifaon74

            passe par un tableau a 2 dimensions:

            var tab=new Array();
            tab[idville]=new Array();
            tab[idville][0]='url img1';
            tab[idville][1]='url img2';
            tab[idville][2]='url img3';
            ...
            



            ensuite avec des boucles en php tu remplis ce tableau et le tour est joué!



            Ne devrais je pas plutôt travailler dans une fonction ou boucle en JavaScript pour mettre à jours mon carrousel un fois la page lancée?

            • Partager sur Facebook
            • Partager sur Twitter
              24 août 2011 à 15:09:19

              et bien 2 solutions s'offrent à toi :

              1) tu utilise ma technique qui consiste en gros a stocker toutes les url de ta BDD dans un tableau bien trié.
              avantage => très rapide
              défaut => si ta BDD est supérieure a 10Mo ça craint car ça va mettre pas mal de temps a charger

              2) tu utilise l'AJAX en appelant une page php qui te renvoie a chaque fois la liste de tes images à afficher.
              avantage => ça prend peu de RAM et la page chargera vite
              défaut => à chaque fois il faudra faire une requette serveur et la ça vas mettre pas mal de temps a charger (plus de 1s) or si on veux vite switcher avec la liste ça vas donner un aperçu de lag...
              • Partager sur Facebook
              • Partager sur Twitter
                24 août 2011 à 15:20:39

                Je suis sur votre première solution,
                j’ai cris dans mon .php le code suivant :



                <div class="anyClass">
                		<ul>
                		
                			<?php
                				 
                				try
                				{
                					// On se connecte à MySQL
                					$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
                					$bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
                					
                					// On récupère tout le contenu de la table jeux_video
                					$reponse = $bdd->query('SELECT * FROM deals');
                					
                					// On affiche chaque entrée une à une
                					while ($donnees = $reponse->fetch())
                					{
                				?>
                				
                				<li><a href="<?php echo '#'.$donnees['id']?>" class="tooltiplink"><img src="images/<?php echo $donnees['image']; ?>.jpg" alt="" width="100" height="100" ></a></li>
                				
                				<script> var tab=new Array();
                				
                				
                				tab[idville]=new Array();
                				tab[<?php echo $donnees['image']; ?>][0]='url(images/' + <?php echo $donnees['id']; ?>+ '.jpg)';
                					alert(tab[idville]); // test !
                				 </script>
                				
                			
                				<?php
                					}
                							  
                						$reponse->closeCursor(); // Termine le traitement de la requête
                					
                					}
                				catch(Exception $e)
                					{
                						// En cas d'erreur précédemment, on affiche un message et on arrête tout
                						die('Erreur : '.$e->getMessage());
                					}
                				?>
                				
                			
                			
                		</ul>
                	</div>
                


                Le message alert ne s'affiche pas, je l'ai peut etre mals écris.
                Est-ce suffisant pour sauvegarder mes images ?
                • Partager sur Facebook
                • Partager sur Twitter
                  24 août 2011 à 15:49:20

                  houlala, tu as appris le javascript ou pas? parce que la ta écrit n'importe quoi... j'ai donné un exemple il faut bien sur remplacer mes variables...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    24 août 2011 à 15:52:26

                    var tab=new Array();
                    tab[idville]=new Array();
                    tab[idville][0]='url img1';
                    tab[idville][1]='url img2';
                    tab[idville][2]='url img3';
                    ...
                    


                    Je débute vraiment en JavaScript, je suis d'accord avec le code que vous m'avez donné mais je dois pourtant me connecter à ma base de donnée pour récupérer les id et les url de mes images.

                    EDIT : sachant que l'admin du site pourra ajouter des villes, la première solution que vous m'aviez cité s’avérerait donc inutiles?
                    Si tel est le cas je suis obligé de me tourner ver ajax ....
                    • Partager sur Facebook
                    • Partager sur Twitter
                      24 août 2011 à 16:12:03

                      hum avant de faire quoi que se soit, apprend correctement le php, MySQL et le JavaScript stp parce que c'est tellement n'importe quoi (pas de structure, très mal ordonné et optimisé) que ça me prendrait 3000 ans à essayé de corriger ton code... d'autre part, je te rappelle que la console d'erreur existe et qu'il faut s'en servir...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        24 août 2011 à 16:23:00

                        EDIT :

                        Je n'ai plus d'erreur dans la console, mais j'utilise ajax pour actualiser les image de mon carrousel en fonction de la ville selectionnée dans la liste déroulante.

                        Mais après avoir choisi une ville mon carrousel disparait où est vide et ma liste déroulante est bloquée à la ville sélectionnée.

                        Voici le fichier .php utilisé avec ajax :

                        <?php
                        header('Content-Type: text/xml');
                        $idville = $_POST['idville']; //on récupère idville
                        if(is_numeric($idville)) { // on protège la bdd
                        ?>
                        	<div class="anyClass">
                        		<ul>
                        <?php
                        
                        	try
                        	{
                        		// connexion a la bdd
                        		$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
                        		$bdd = new PDO('mysql:host=localhost;dbname=projet_isep', 'root', '', $pdo_options);
                         
                        		// requete : infos pour cette ville
                        		//$requete = "SELECT * FROM deals WHERE zoneiddeal = '".$idville."';";
                        		//$reponse = $bdd->query('$requete')
                        		$reponse = $bdd->query('SELECT * FROM deals WHERE zoneiddeal = '.$idville.';');
                        		// On affiche chaque entrée une à une
                        		
                        		while ($donnees = $reponse->fetch()) 
                        		{
                        		
                        ?>		
                        
                        
                        			<li><a href="<?php echo '#'.$donnees['id']?>" class="tooltiplink"><img src="images/<?php echo $donnees['image']; ?>.jpg" alt="" width="100" height="100" /></a></li>
                        			
                        <?php
                        		} // fin while
                        		$reponse->closeCursor(); // Termine le traitement de la requête
                        	} // fin try
                        	catch(Exception $e)
                        	{
                        		// En cas d'erreur précédemment, on affiche un message et on arrête tout
                        		die('Erreur : '.$e->getMessage());
                        	} // fin catch
                        ?>
                        		</ul>
                        	</div>	
                        	
                        	
                        <?php
                        } // fin if is_numeric
                        ?>
                        
                        • Partager sur Facebook
                        • Partager sur Twitter

                        Fonction Java et code SQL

                        × 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