11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
je voudrais faire une redirection en fonction de la résolution d'écran vers la même page grâce à PHP,j ajoute simplement la méthode GET à mon url.
Cela me permet de changer, toujours par php, le lien vers mon fichier CSS.
Je connais pas mal PHP , en revanche je suis zéro en javascript, pouvez vous me dire si ce code fonctionne et si le fait de rapeler la même page et donc de relire ce même code ne créerai pas une boucle infinie?
Il a t-il un moyen d'empêcher ça par une ligne de code?

voici mon code:
<script language="javascript">
<!--
if (screen.width <800)
location="maj.php?screen=small"; 
else if (screen.width > 800)     
location="maj.php?screen=large";
//-->
</script>



Merci
Modifié par dubnet (02 Jun 2005 - 22:17)
et op tout frais tout chaud

<?php
if(!$_GET['screen']){
	?>
	<script language="JavaScript">
	if(screen.Width > 800){
		location="maj.php?screen=large";
	}
	else{
		location="maj.php?screen=small";
	}
	</script>
	<?php
}
else if($_GET['screen']=='large'){
	ton code;
}
else if($_GET['screen']=='small'){
	ton code;
}
?>



si c'est la premiere fois que tu arrives sur la page, get['screen'] n'existe pas encore donc la tu testes la taille de l'ecran.
Si c'est la deuxième fois, get['screen'] existe et la tu fais tes traitements.
Et attention : tu n'avais pas mis les {} dans le if et le else en JS
Modifié par gabnico (02 Jun 2005 - 18:48)
Modérateur
gabnico a écrit :

Et attention : tu n'avais pas mis les {} dans le if et le else en JS


Les accolades sont inutiles s'il n'y a qu'une instruction dans la condition.
dubnet peux tu editer ton premier post pour baliser correctement ton code avec [ code] et [ /code]. Tu le sais pourtant depuis le temps... Smiley ohwell

Sinon j'aurais dit que ton deuxieme test par else if est inutile, si la résolution est moins grande que 800 elle est forcément plus petite... Smiley lol


<script language="javascript">
<!--
if (screen.width < 800)
location="maj.php?screen=small";
else 
location="maj.php?screen=large";
//-->
</script>

Modifié par jb_gfx (02 Jun 2005 - 18:59)
Merkel a écrit :


Les accolades sont inutiles s'il n'y a qu'une instruction dans la condition.


Oups. autant pour moi Smiley biggrin
On en apprends tout les jours ici
Modifié par gabnico (02 Jun 2005 - 18:59)
Modérateur
D'ailleurs, selon le script de dubnet, si la largeur de l'écran était exactement de 800, il ne se passait rien du tout. Smiley langue Faut faire attention à ca.
Modifié par Merkel (02 Jun 2005 - 19:03)
Ouais merci GAbnico, c'est bien la solution pour laquelle j'avais optée:
le faire en php avec une conditionnelle.J'y ai pensé juste aprés avoir envoyé mon message.Merci pour ce petit code.

jb_gfx:t'as raison pour mon code.Cette fois je vais pas te prendre latête Smiley smile ;YOP, c'est corrigé! Smiley biggrin

Merkel:Oui oui, il me semblait bien que ça faisait chelou sans les accolades...mais bon, ce code, je l'ai capté tout fais, je ne connais pas le javascript(une lacune de +...)...alors quand il s'agit d'intervenir dessus c'est clairement chaud!
Enfait, t'as surement remarqué que je suis toujours sur mon pb de mise en page Smiley rolleyes ...Maintenant que mon CSS fonctionne, je remet en question mes choix "strategiques"(oh!le joli mot...)...y'a pas de mal à vouloir faire de la qualité!



merci à tous
Modifié par dubnet (02 Jun 2005 - 22:35)
Modérateur
dubnet a écrit :
Maintenant que mon CSS fonctionne, je remet en question mes choix "strategiques"(oh!le joli mot...)...y'a pas de mal à vouloir faire de la qualité!


C'est du moins ce que les gens, dont moi, avaient essayé de faire au sujet de ton layout 3 colonnes pour 1024 et plus. À remettre en question ton idée de proposer un menu supplémentaire à ceux ayant la chance d'avoir une résolution plus grande. Je constate qu'avec ce Javascript, tu veux toujours t'occuper de ce "problème", qui ne devrait même pas en être un.

Je t'invite à nous montrer ton interface, avec les vraies menus et le contenu. Peut-être qu'on pourrait te conseiller afin d'améliorer l'ergonomie voir même proposer une idée de génie pour disposer tout ca pour que ca passe même en 800x600. Quand c'est rendu que tu dois détecter la taille de l'écran pour afficher ta page, et faire une discrimination, il y a déjà un problème de conception je trouve. Si ton menu est si optionnel que ca, pourquoi ne pas faire un simple lien du genre : Accéder au menu optionnel, qui afficherait une nouvelle page avec toutes les options dans la partie contenu. Je dis ca à la volée. Difficile de te conseiller si on ne connait pas réellement tes menus et ce que ces menus sont supposés faire.

S'il te serait possible de nous montrer concrètement ton interface, ca l'irait beaucoup mieux pour argumenter, conseiller, critiquer afin d'en arriver à de la qualité.

Smiley cligne
isset c'est pour voir si une variable existe. Mais ça ne m'avance à rien de savoir si elle existe parce que je devrai quand même la tester pour savoir si elle est égale a small ou large.
Par contre,savoir si elle existe pas ( ! $_GET ) ça ça nous intéresse directement pour lancer le JS.

enfin je pense...
Je suis pas pro Smiley confus
Bon pour le moment je peux pas trop te montrer le truc (malheureusement), je suis pas seul sur le projet...je crois qu'on va reposer le pb et, si on trouve pas de solution , je te montrerais la page

Concernant le isset: c'est ok effectivement Smiley rolleyes