Comment récupérer les variables d'un form dans un array php

sandy_perdue Messages postés 8 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 4 janvier 2015 - 3 janv. 2015 à 04:33
sandy_perdue Messages postés 8 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 4 janvier 2015 - 4 janv. 2015 à 09:38
Bonjour,

Sur une page.php,j'ai un formulaire avec un champ nom et un champ prénom, je récupère ces données sur une autre page.php, mais je voudrais pouvoir stocker (peut-être dans un array?) tous les noms et prénoms de tous les users au fur et à mesure(j'avais pensé à un foreach...),le problème est qu'à chaque fois que je clique sur le bt submit,ma page se "rafraîchit"...

Je n'arrête pas d'écumer tous les sites:je trouve beaucoup d'éléments de réponse que je n'arrive pas à mettre en place à cause de mon manque flagrant de connaissance en php...Je suis complètement perdue et espère que vous pourrez m'aider!

Merci beaucoup!

Excellente journée à tous et Bonne Année!!!

sandy

2 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
3 janv. 2015 à 10:39
Bonjour

montres nous ton code ca pourrait nous aider à comprendre ce que tu veux réaliser.

0
sandy_perdue Messages postés 8 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 4 janvier 2015
Modifié par jordane45 le 3/01/2015 à 14:36
Bonjour jordane45,

En fait,je viens juste de trouver un code sur ce site qui pourrait faire l'affaire(en javascript),il faudrait juste arriver à garder dans l'array les données de tous les users successifs...

Voici le code:
dans ma page formulaire.php:
<form name="test" method="get" action="cible.php">
  <input type="text" name="param1" value="" />
  <input type="text" name="param2" value="" />
  <input type="submit" />
 </form>

dans ma page cible.php:
<script type="text/javascript">
 
  // FONCTIONS
 
  function getURLParams()
  {
   var url = document.location.href.split("?");
   
   if(url.length > 1)
   {
    // Params found un URL !
    var get = new Object;
    var params = url[1].split("&");

    for(var i in params)
    {
     var tmp = params[i].split("=");
     get[tmp[0]] = unescape(tmp[1].replace("+", " "));
    }
    
    // Return Object (data are accessible in array too) : get["paramname"] = get.paramname
    return get;
   }
   
   // No params found in URL !
   return false;
  }
  
  function isset(data)
  {
   if(typeof(data) == "undefined")
    return false;
   
   return true;
  }
  
  // CODE DE TEST
  
  $_GET = getURLParams();
  
  if(isset($_GET.param1))
   document.write($_GET.param1 + " ");
   
  if(isset($_GET.param2))
   document.write($_GET.param2 + ",");
  
 </script>


J'essaie de "bidouiller" cette fonction afin qu'elle retourne à chaque fois les données,qu'elle les additionne au lieu de les remplacer mais sans succès...
Je suis sûre que pour vous c'est un jeu d'enfant ;-)

Merci beaucoup!

EDIT : Ajout des balises de code

Très bonne journée!!

sandy
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
3 janv. 2015 à 14:44
Bonjour,

Je pense que pour conserver les donnnées le plus simple est l'utilisation des SESSION...


ce qui donnerait pour page cible.php :
<?php
session_start();

// récupération des variables stockées en SESSION
$arrParam1 = isset($_SESSION['arrparam1'])?$_SESSION['arrparam1']:array();
$arrParam2 = isset($_SESSION['arrparam2'])?$_SESSION['arrparam2']:array();

// récupération des variables envoyées par le formulaire (en POST)
if(isset($_POST)){
 $param1 = isset($_POST['param1'])?$_POST['param1']:NULL;
 $param2 = isset($_POST['param2'])?$_POST['param2']:NULL;

 // on alimente l'array avec les nouvelles valeurs
 $arrParam1[] =  $param1; 
 $arrParam2[] =  $param2;
 // on re-stoke l'array en session
 $_SESSION['arrparam1'] = $arrParam1;
 $_SESSION['arrparam2'] = $arrParam2;

 // pour vérifier...
 
 print_r($_SESSION);
 
}
?>



PS: je préfère l'utilisation de POST à GET mais tu peux modifier...
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
3 janv. 2015 à 15:22
Ou si tu veux stocker param1 et param2 dans un seul tableau...

<?php
session_start();

// récupération des variables stockées en SESSION
$arrParam = isset($_SESSION['arrparam'])?$_SESSION['arrparam']:array();


// récupération des variables envoyées par le formulaire (en POST)
if(isset($_POST)){
 $param1 = isset($_POST['param1'])?$_POST['param1']:NULL;
 $param2 = isset($_POST['param2'])?$_POST['param2']:NULL;

 // on alimente l'array avec les nouvelles valeurs
 $arrParam[] =  array('param1'=>$param1,'param2'=> $param2); 
 // on re-stoke l'array en session
 $_SESSION['arrparam'] = $arrParam;

 // pour vérifier...
  print_r($_SESSION);
 
}
0
sandy_perdue Messages postés 8 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 4 janvier 2015 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
3 janv. 2015 à 18:55
Merci beaucoup Jordane45!!

Je viens de tester ton code,les 2 paramètres apparaissent bien dans la page cible,mais quand je change de page et que je reviens à cette page,ils ont disparu...Ce que je voudrais c'est avoir une liste qui grandit de + en + sur ma page cible....
Je me demande s'il ne faudrait pas les stocker dans une DB?
En +,ce serait plus facile pour gérer les données:par exemple pour en supprimer...

Bon,je poursuis mes recherches et je te tiens au courant!
Merci encore pour le temps que tu as consacré à ce code!

Bonne fin de journée!

sandy
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344 > sandy_perdue Messages postés 8 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 4 janvier 2015
3 janv. 2015 à 19:05
Il faut activer les sessions sur toutes tes pages. ....
session_start ();
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 344
3 janv. 2015 à 19:06
Par contre il est clair qu'il serait largement préférable de gérer ça en base de données. ..
0
sandy_perdue Messages postés 8 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 4 janvier 2015 > jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024
3 janv. 2015 à 20:44
Rebonjour Jordane45,

A quel endroit de la page doit-on mettre ce code ?
Je l'ai mis dans le body entre <?php et ?>,sur les 2 autres pages que j'utilise pour tester(index.html et formulaire.php),c'est ça ou pas ?Parce que ça ne marche toujours pas... :-((((
Je vais essayer de le mettre avant le code html ou dans le head...

Merci encore !

Bonne soirée!
0
Rejoignez-nous