Page 1 sur 1

Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 16:40
par KlimPoliakov
Bonjour, j'aimerais faire une boucle à l'aide d'un GET. Mon site possède 2 pages : la page1 et la page2. Sur la page1 il y a plusieurs images, le code est le suivant:
<a href="page2.php?id=1"> <img src="http://monsite.fr/images/image1.jpg" /> </a>
<a href="page2.php?id=2"> <img src="http://monsite.fr/images/image2.jpg" /> </a>
<a href="page2.php?id=3"> <img src="http://monsite.fr/images/image3.jpg" /> </a>
...
<a href="page2.php?id=n"> <img src="http://monsite.fr/images/imagen.jpg" /> </a>
Je clique à présent sur l'image2 et j'atteris sur la page2 sur laquelle s'affiche l'image2 à l'aide de ce code:
echo '<img src="http://monsite.fr/images/image'.$_GET['id'].'.jpg" />';
Maintenant je retourne de nouveau sur la page1 et clique sur l'image3, et je suis redirigé vers la page2 où l'image3 est affichée.
Ma question: comment faire pour que sur la page2 les deux images sur lesquelles j'ai cliqué soient affichées ? Je suppose qu'il faut faire une boucle ?

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 18:11
par Elie
Tu stockes dans un array()...

Tu savais sauvegarder les images dans une session...
Bah fait en sorte que ta session soit un array()
session_start();
$_SESSION['image'][] = $_GET['id'];
foreach($_SESSION['image'] as $v) {
 echo '<img src="http://monsite.fr/images/image'.$v.'.jpg" />';
}

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 20:01
par KlimPoliakov
Merci Elie pour ta réponse, j'ai peut-être oublié d'ajouter un détail dans ma question. J'aimerais que les images ne s'ouvrent pas en même temps mais qu'elles s'ouvrent seulement si je clique dessus. Je m'explique, si je clique sur l'image1 sur la page1, alors l'image1 (et seulement l'image1) apparaît sur la page2, maintenant si je reviens sur la page1 et clique sur l'image3 par exemple alors sur la page2 sont affichées l'image1 et l'image3. Par contre si je n'aurais pas cliqué sur l'image3 (sur la page1), alors il n'y aurait que l'image1 sur la page2. Avec un tableau cela est-ce possible ?

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 20:08
par tof73
tu as essayé le code donné ?
car il fait ce que tu souhaites.

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 20:38
par KlimPoliakov
Non, il y a quelque chose qui coince, j'ai fait ce code sur la page1 :
<a href="page2.php?id=1"> <img src="http://monsite.fr/images/image1.jpg" /> </a>
<a href="page2.php?id=2"> <img src="http://monsite.fr/images/image2.jpg" /> </a>
<a href="page2.php?id=3"> <img src="http://monsite.fr/images/image3.jpg" /> </a>
...
<a href="page2.php?id=n"> <img src="http://monsite.fr/images/imagen.jpg" /> </a>
Et ensuite celui-là sur la page2 :
session_start();
if(!empty($_GET['id'])) $_SESSION['id'][] = $_GET['id'];
foreach($_SESSION['id'] as $v) {
 echo '<img src="http://monsite.fr/images/image'.$v.'.jpg" />';
}
Mais quand je clique sur l'un des liens de la page1, rien ne s'affiche sur la page2 :cry:

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 20:47
par tof73
j'ai fait un copier/coller de ces 2 codes et cela fonctionne.

donne le code complet de page2.php pour vérifier que session_start(); est appelé au bon moment.

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 20:48
par Elie
Dommage car chez moi ca marche :)

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 21:09
par KlimPoliakov
Voilà mon code (j'ai pris la peine de remplacer le nom de mon vrai site pour pas faire de pub):
<?php
 session_start(); // Très important

?>



<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Resizable - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
  <script src="http://monsite.fr/code/js/jquery.ui.touch-punch.min.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <style>

  </style>
  <script>
  
    $(function() {
    $( ".resize" ).resizable({
      aspectRatio: true
    });
  });
  
  $(function() {
    $('.drag').draggable();
  });


  </script>
</head>
<body>
 
 

<?php 
if(!empty($_GET['logo'])) $_SESSION['logo'] = $_GET['logo'];
foreach($_SESSION['logo'] as $v) {
echo '<div class="drag"><img class="resize" src="http://monsite.fr/media/img/logo/'.$v.'.svg"/></div>'; 
}
?>

 
 
 
</body>
</html>

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 21:14
par Elie
Et ca te saute pas au yeux ?

Le principe de faire un array d'une variable et de rajouter [].
C'est comme si tu écrivait $_SESSION['nom'][0] ...
Tu peux meme faire $_SESSION['nom']['nom_de_la_cle']

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 21:24
par KlimPoliakov
Quand je met ce code:
<?php
 session_start(); // Très important

?>



<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>jQuery UI Resizable - Default functionality</title>
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
  <script src="http://monsite.fr/code/js/jquery.ui.touch-punch.min.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css">
  <style>

  </style>
  <script>
  
    $(function() {
    $( ".resize" ).resizable({
      aspectRatio: true
    });
  });
  
  $(function() {
    $('.drag').draggable();
  });


  </script>
</head>
<body>
 
 

<?php 
if(!empty($_GET['logo'])) $_SESSION['logo'][] = $_GET['logo'];
foreach($_SESSION['logo'] as $v) {
echo '<div class="drag"><img class="resize" src="http://monsite.fr/media/img/logo/'.$v.'.svg"/></div>'; 
}
?>

 
 
 
</body>
</html>
Cela me retourne: "Fatal error: [] operator not supported for strings in ... on line 46"

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 21:32
par tof73
ferme ton navigateur et reteste (afin de remettre à la session à 0).

Re: Faire une boucle à l'aide d'un GET

Posté : 05 janv. 2015, 21:35
par KlimPoliakov
Oui j'ai fermé le navigateur et ça a marché ! :D :D :D :D :D :D Merci à vous deux