Document.location.href et variable en get

Résolu/Fermé
milie - 25 juin 2008 à 13:47
 milie - 25 juin 2008 à 21:19
Bonjour,

Je ne connais pas grand chose en js mais j'ai besoin de rediriger sur une nouvelle page pour récupérer la resolution (obtenue grâce a js) en php. Le problème est que dans le document.location.href, je n'arrive pas à passer une variable créée juste avant avec js dans l'adresse, pour ensuite la récupérer avec un $_GET...
J'espère avoir été assez claire, et voici le bout de script concerné (j'arrive à récupérer la variable screen.width avec $_GET['width'] mais pas ancre avec $_GET['ancre']...)

<script type="text/javascript">
		<!-- debut
		function resolution() {
		var ancre = 'club' ;
		document.location.href="accueil.php?width="+screen.width+"&ancre="+ancre;
		}
		// fin -->
		</script>
   </head>
   <?php
      if(!isset($_GET['width']) and !isset($_GET['height']))
	  {
		echo '<body onload="resolution();">';
      }
	  else
	  {
		$largeur=$_GET['width'];
		if(isset($_GET['ancre']))
		{
		$ancre=$_GET['ancre'];
		echo $ancre;
		}
		else
		{
		echo '<p>erreur</p>';
		}
		echo '<body>';
      }
A voir également:

11 réponses

burnedsyn Messages postés 170 Date d'inscription samedi 29 septembre 2007 Statut Membre Dernière intervention 21 février 2009 16
25 juin 2008 à 19:03
<script type="text/javascript">
		<!-- debut
		function resolution() {
		var ancre = 'club' ;
		document.location.href="accueil.php?width="+screen.width+"&ancre=&quo­t;+ancre;
		}
		// fin -->
		</script>


hello as tu essayé cette fonction : encodeURIComponent(chaîne)
Encode l'URI de telle façon que tous les caractères spéciaux sont transformés en séquences de signes ASCII. Les caractères avec accents en français par exemple (ou avec Umlaut en allemand), les caractères spéciaux ainsi que les espaces, les parenthèses accolades... sont donc codés. A la diférence de la fonction encodeURI, encodeURIComponent encode aussi ces caractères : , / ? : @ & = + $

donc tu remplaces document.location.href= par chaineurl="accueil.php?width="+screen.width+"&ancre=+ancre;
Ensuite tu fais

chaineurl=encodeURIComponent(chaineurl);


voila j'espère que cela t'aidera
A bientot
Tim

Oups petit edit car j'avais commencé cet aprem et j'ai pas vu l'évolution enfin
2
Désolé, il y avait une erreur, j'avais oublié le & dans l'adresse du href ; mais j'ai toujours le même problème...
0
JuB0 Messages postés 654 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 6 mai 2012 81
25 juin 2008 à 16:51
Salut milie.
A l'affichage de ta page "accueil.php", les variables apparaissent bien dans l'url ou pas ?
0
http://localhost/bda/accueil.php?width=1280&ancre=club

oui il les affiche comme ça, mais il ne remplace pas le & par&...
et sur la page il m'affiche bien la valeur de $largeur mais il n'affiche pas celle de $ancre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le "& amp ;" par le & (j'ai pas mis d'espace dans le script)
0
Bonjour,

Je ne sais pas si tu as déjà essayé comme ça.

document.location.href="accueil.php?width="+screen.width+"&ancre="+ancre;
0
JuB0 Messages postés 654 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 6 mai 2012 81
25 juin 2008 à 17:17
<script type="text/javascript">
<!-- debut
function resolution()
{
var ancre = 'club' ;
document.location.href="accueil.php?width="+screen.width+"&ancre="+ancre;
}
// fin -->
</script>
</head>
<?php
if(!isset($_GET['width']) and !isset($_GET['height']))
{
echo '<body onload="resolution();">';
}
else
{
$largeur=$_GET['width'];
if(isset($_GET['ancre']))
{
$ancre=$_GET['ancre'];
echo $ancre;
}
else
{
echo '<p>erreur</p>';
}
echo '<body>';
}
?>

Il m'affiche bien "club"
0
oui en fait c'est comme ça que je l'ai écrit, je ne sais pas pourquoi le " a été remplacé par & quot ; sur le message
0
JuB0 Messages postés 654 Date d'inscription jeudi 27 décembre 2007 Statut Membre Dernière intervention 6 mai 2012 81
25 juin 2008 à 17:25
Chez moi le script fonctionne.

$ancre=$_GET['ancre'];
echo $ancre;

ça affiche bien "club".
0
oui en effet tu as raison. Dans ce cas-là le problème doit venir d'autre part mais je vois pas du tout de où...
Voilà le script complet de la page si tu as envie de jeter un oeil

<!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>Le fabuleux</title>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link rel="stylesheet" media="screen" type="text/css" title="Design" href="codebis.css" />
		<script type="text/javascript">
		<!-- debut
		function resolution() {
		var ancre = 'club' ;
		document.location.href="accueil.php?width="+screen.width+"&ancre="+ancre;
		}
		// fin -->
		</script>
   </head>
   <?php
      if(!isset($_GET['width']) and !isset($_GET['height']))
	  {
		echo '<body onload="resolution();">';
		echo '<p>erreur</p>';
      }
	  else
	  {
		$largeur=$_GET['width'];
		if(isset($_GET['ancre']))
		{
		$ancre=$_GET['ancre'];
		echo $ancre;
		}
		else
		{
		echo '<p>erreur</p>';
		}
		echo '<body>';
      }
      
include("en_tete.php");
include("menugauche.php");
include("menudroite.php");

?>
<div id="chemin"><a href="accueil.php">Accueil</a></div>
<div id="transparence">
			<h1>Accueil</h1><br/>
			
			<?php 	echo $largeur;
					echo $ancre;
mysql_connect("localhost", "root", "");
mysql_select_db("test");
// On récupère les 5 dernières news
$retour = mysql_query('SELECT * FROM news ORDER BY id DESC LIMIT 0, 5');
while ($donnees = mysql_fetch_array($retour))
{
?>
<div class="news">
    <h2>
        <?php echo $donnees['titre']; ?>
	</h2>
        <em class="petit">le <?php echo date('d/m/Y à H\hi', $donnees['timestamp']); ?></em>
    
    <p>
    <?php
    // On enlève les éventuels antislash PUIS on crée les entrées en HTML (<br />)
    $contenu = nl2br(stripslashes($donnees['contenu'].'<br/>'.'<hr/>'));
    echo $contenu;
    ?>
    </p>
</div>
<?php
} // Fin de la boucle des news
?>
			
		<span id="club"><img align="center" id="palette" src="palette2x1280.png"></span>



<p id="remonter"><a href="accueil.php#chemin">Remonter</a></p>
</div>
<?php
include("pied_de_page.php");
?>

   </body>
</html>
0
bon ben maintenant ça marche alors que je n'ai absolument rien changé...
merci quand même pour votre aide
0