[PHP/Javascript] Faire passer un choix

Fermé
vaeylon - 23 mai 2009 à 03:35
 vaeylon - 25 mai 2009 à 13:56
Bonjour,

depuis quelques jours je m'amuse un peu entre php/javascript et xml pour faire mon portfolio. Jusqu'ici tout va bien et tout marche comme je voudrai que ca marche seulement voila.

J'ai fait en sorte que l'on puisse modifier la couleur de fond grâce a un petit code javascript pas bien méchant et que l'on puisse changer de langue grâce a un peu de php. Bon maintenant voila mon problème, quand je change de langue je recharge la page (pour charger les données du nouveau xml), mais du coup la couleur de fond qu'on avait choisi dans la page précédente n'est plus prise en compte et on reviens a la valeur par défaut.

Alors évidemment l'un est géré en php l'autre en javascript donc ca aide pas mais... j'ai essayer de faire passer l'info via des sessions (sans succès, je me suis rendu compte après que mettre du php dans un "onClick" executait le php même quand on cliquait pas dessus (quel idiot aussi de penser le contraire >< )), via des cookies (même problème), là j'en viens a penser à faire passer l'info directement dans l'URL et de le récupérer par $_GET, mais ca me parait complètement con et puis surtout c'est pas transparent (déjà que j'aime pas mon changement de langue parce qu'il faut recharger la page XD.
Donc est-ce que quelqu'un a une quelconque idée de comment je pourrai faire pour faire passer ça de manière propre ?

Comme c'est un peu la misère a comprendre sans savoir de quoi il en retourne (je pense) voici un lien et le code source de ma page principale : http://www.vaeylon.com/tests/

<?php 
if(isset($_GET['lang'])){
	$langue = (string)$_GET['lang'] ;
	$xml = simplexml_load_file('content/'.$langue.'.xml') ;
}else{ $xml = simplexml_load_file('content/fr.xml') ; }

$script_orange = "document.getElementById('bg').style.backgroundColor = '#ff9600' ; 
document.getElementById('bouton1').style.backgroundColor = '#ff9600' ;
document.getElementById('bouton2').style.backgroundColor = '#ff9600' ;
document.getElementById('bouton3').style.backgroundColor = '#ff9600' ;
document.getElementById('bouton4').style.backgroundColor = '#ff9600' ;
document.getElementById('bouton5').style.backgroundColor = '#ff9600' ;
document.getElementById('bouton6').style.backgroundColor = '#ff9600' ;" ;
$script_magenta = "document.getElementById('bg').style.backgroundColor = '#e2007a' ; 
document.getElementById('bouton1').style.backgroundColor = '#e2007a' ;
document.getElementById('bouton2').style.backgroundColor = '#e2007a' ;
document.getElementById('bouton3').style.backgroundColor = '#e2007a' ;
document.getElementById('bouton4').style.backgroundColor = '#e2007a' ;
document.getElementById('bouton5').style.backgroundColor = '#e2007a' ;
document.getElementById('bouton6').style.backgroundColor = '#e2007a' ;" ;
$script_bleu = "document.getElementById('bg').style.backgroundColor = '#00a2ff' ; 
document.getElementById('bouton1').style.backgroundColor = '#00a2ff' ;
document.getElementById('bouton2').style.backgroundColor = '#00a2ff' ;
document.getElementById('bouton3').style.backgroundColor = '#00a2ff' ;
document.getElementById('bouton4').style.backgroundColor = '#00a2ff' ;
document.getElementById('bouton5').style.backgroundColor = '#00a2ff' ;
document.getElementById('bouton6').style.backgroundColor = '#00a2ff' ;"  ;
$script_vert = "document.getElementById('bg').style.backgroundColor = '#9cff00' ; 
document.getElementById('bouton1').style.backgroundColor = '#9cff00' ;
document.getElementById('bouton2').style.backgroundColor = '#9cff00' ;
document.getElementById('bouton3').style.backgroundColor = '#9cff00' ;
document.getElementById('bouton4').style.backgroundColor = '#9cff00' ;
document.getElementById('bouton5').style.backgroundColor = '#9cff00' ;
document.getElementById('bouton6').style.backgroundColor = '#9cff00' ;" ;

$contenu['accueil'] = $xml->accueil ;
$contenu['apropos'] = $xml->apropos ;
$contenu['parcours'] = $xml->parcours ;
$contenu['experience'] = $xml->experience ;
$contenu['realisations'] = $xml->realisations ;
$contenu['contact'] = $xml->contact ;

$script_accueil = "document.getElementById('content').innerHTML = <span id='texte'>".$contenu['accueil']."</span> ;" ;
$script_apropos = "document.getElementById('content').innerHTML = <span id='texte'>".$contenu['apropos']."</span> ;" ;
$script_parcours = "document.getElementById('content').innerHTML = <span id='texte'>".$contenu['parcours']."</span> ;" ;
$script_experience = "document.getElementById('content').innerHTML = <span id='texte'>".$contenu['experience']."</span> ;" ;
$script_realisations = "document.getElementById('content').innerHTML = <span id='texte'>".$contenu['realisations']."</span> ;" ;
$script_contact = "document.getElementById('content').innerHTML = <span id='texte'>".$contenu['contact']."</span> ;" ;

?>

<!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">
<head>
<title> Vaeylon's Website ::: Web developper </title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
    
<meta http-equiv="content-language" content="fr" />
<meta http-equiv="content-style-type" content="text/css" />
<meta name="generator" content="Dreamweaver CS4" />
<meta name="publisher" content="Dreamweaver CS4" />
<meta name="author" content="Sebastien BARTOLI" />
<meta name="date" content="2009-02-05T09:10:00+0200" />
<meta name="copyright" content="Copyright 2009" />
<meta name="keywords" content="" />
<meta name="description" content="Vaeylon's website" />
<meta name="robots" content="index,nofollow" />
<meta name="language" content="fr" />
    
<link type="text/css" rel="stylesheet" href="styles/screen.css" />
<link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico" />
</head>

<body id="bg">
<div id="menu">
<div class="button" id="bouton1"><div class="button_text"><a href="#" onclick="<?php echo $script_accueil ; ?>" ;>:: Accueil ::</a></div></div>
<div class="button" id="bouton2"><div class="button_text"><a href="#" onclick="<?php echo $script_apropos ; ?>" ;>:: A propos ::</a></div></div>
<div class="button" id="bouton3"><div class="button_text"><a href="#" onclick="<?php echo $script_parcours ; ?>" ;>:: Parcours ::</a></div></div>
<div class="button" id="bouton4"><div class="button_text"><a href="#" onclick="<?php echo $script_experience ; ?>" ;>:: Experience ::</a></div></div>
<div class="button" id="bouton5"><div class="button_text"><a href="#" onclick="<?php echo $script_realisations ; ?>" ;>:: Realisations ::</a></div></div>
<div class="button" id="bouton6"><div class="button_text"><a href="#" onclick="<?php echo $script_contact ; ?>" ;>:: Contact ::</a></div></div>
</div>

<div id="left">
<div id="colors">
<a href="#" class="color_button" onclick="<?php echo $script_magenta ; ?>"><img src="couleur_magenta.png" /></a>
<a href="#" class="color_button" onclick="<?php echo $script_orange ; ?>"><img src="couleur_orange.png" /></a>
<a href="#" class="color_button" onclick="<?php echo $script_bleu ; ?>"><img src="couleur_bleu.png" /></a>
<a href="#" class="color_button" onclick="<?php echo $script_vert ; ?>"><img src="couleur_vert.png" /></a><br />

<span id="flags">
<a href="index.php?lang=fr"><img src="flag_fr.png" /></a>
<a href="index.php?lang=en"><img src="flag_en.png" /></a>
</span><br /><br />

<span id="logos">
<a href="http://www.igniteyourgeek.com" target="_blank"><img src="ignite.png" /></a><br />
<a href="https://twitter.com/vaeylon" target="_blank"><img src="twitter.png" /></a><br />
<a href="http://www.facebook.com/profile.php?id=1313693965&ref=profile" target="_blank"><img src="facebook.png" /></a><br />
<a href="https://www.flickr.com/photos/vaeylon/" target="_blank"><img src="flickr.png" /></a><br />
</span>
</div>
<div id="right">
<div id="content" >
<?php echo $myvar ; ?><br />
<span id="texte"><?php echo $contenu['accueil'] ; ?></span>
</div></div>


</div>


</body>
</html>



Merci ! :D
A voir également:

3 réponses

gaerebut Messages postés 1017 Date d'inscription mardi 30 octobre 2007 Statut Membre Dernière intervention 22 novembre 2013 171
23 mai 2009 à 03:50
Salut Mister je me complique la vie !lol

Déjà pour tout ce qui est JS, c'est pas très très bien codé !
Tu répète plusieurs fois la même expression en changeant juste le nom de l'id (bouton1, bouton2, bouton3, etc.), il y a des moyens beaucoup plus simple pour faire ça!
Indice : eval()

Ensuite, je te conseille tout simplement l'AJAX pour remédier à ce problème !
C'est pas bien dûr et tu obitendra quelque chose de correct !
De plus, je trouve ça étrange que les SESSIONS et COOKIE ne marche pas !
Normalement ça devrai marcher, tu as dû mal t'y prendre !

A+

Gaerebut
0
Déjà merci pour ta réponse rapide a une heure aussi tardive :p

Pour le code javascript je sais qu'il est pourri mais bon, je suis franchement pas très bon en javascript et je touche plus ma bille en php donc là c'était vraiment pour m'amuser et pas autre chose, je galère déjà a faire une boucle digne de ce nom en javascript donc bon :p

Le problème avec les sessions ou cookie c'est que je mettait l'attribution de ma variable $_SESSION['color'] dans les OnClick entre deux balises <?php ?> :

<a href="#" class="color_button" onclick="<?php echo $script_vert ; $_SESSION['color'] = 'vert' ?>"><img src="couleur_vert.png" /></a><br />


mais le soucis était qu'évidemment TOUT le php s'executait (donc toutes les attributions de variables de session) et donc je retombais immanquablement sur vert... Dans les faits ça fonctionnait... j'avais plus que du vert :p mais bon, j'ai pas trouvé le moyen de réglé ça alors j'ai chercher ailleurs :p
(Excuse : je suis fatigué (il est tard) et j'ai 6 heures de sommeil dans la tronche en 3 jours) XD

Evidemment si y'a un moyen de faire fonctionner ce foutu $_SESSION ça serai un must ! :D
0
Up ! Quelqu'un aurait une idée ?
0