Rechercher : dans
Par :

Document.location.href et variable en get

Dernière réponse le 25 jun 2008 à 21:19:55 milie, le 25 jun 2008 à 13:47:17 
 Signaler ce message aux modérateurs

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>';
      }
Configuration: Windows Vista
Firefox 2.0.0.14

Meilleures réponses pour « document.location.href et variable en get » dans :
Javascript - L'objet window VoirLes particularités de l'objet window L'objet window est l'objet par excellence dans Javascript, car il est le parent de chaque objet qui compose la page web, il contient donc : l'objet document: la page en elle-même l'objet location: le lieu de...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...

1

milie, le 25 jun 2008 à 13:58:12

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...

Répondre à milie

2

JuB0, le 25 jun 2008 à 16:51:57

Salut milie.
A l'affichage de ta page "accueil.php", les variables apparaissent bien dans l'url ou pas ? Google est ton ami ...

Répondre à JuB0

3

milie, le 25 jun 2008 à 17:02:50

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

Répondre à milie

4

milie, le 25 jun 2008 à 17:04:21

Le "& amp ;" par le & (j'ai pas mis d'espace dans le script)

Répondre à milie

5

doudi, le 25 jun 2008 à 17:10:32

Bonjour,

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

document.location.href="accueil.php?width="+screen.width+"&ancre="+ancre;

Répondre à doudi

6

JuB0, le 25 jun 2008 à 17:17:43

<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" Google est ton ami ...

Répondre à JuB0

7

milie, le 25 jun 2008 à 17:18:44

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

Répondre à milie

8

JuB0, le 25 jun 2008 à 17:25:37

Chez moi le script fonctionne.

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

ça affiche bien "club". Google est ton ami ...

Répondre à JuB0

9

milie, le 25 jun 2008 à 17:33:28

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>

Répondre à milie

10

burnedsyn, le 25 jun 2008 à 19:03:26
  • +1

<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

Répondre à burnedsyn

11

 milie, le 25 jun 2008 à 21:19:55

Bon ben maintenant ça marche alors que je n'ai absolument rien changé...
merci quand même pour votre aide

Répondre à milie