Comment récupérer les variables d'un form dans un array php
sandy_perdue
Messages postés8Date d'inscriptionsamedi 3 janvier 2015StatutMembreDernière intervention 4 janvier 2015
-
3 janv. 2015 à 04:33
sandy_perdue
Messages postés8Date d'inscriptionsamedi 3 janvier 2015StatutMembreDerniè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
A voir également:
Comment récupérer les variables d'un form dans un array php
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...
<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 ;-)
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 avril 2024344 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...
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 avril 2024344 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);
}
sandy_perdue
Messages postés8Date d'inscriptionsamedi 3 janvier 2015StatutMembreDernière intervention 4 janvier 2015
>
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 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
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 avril 2024344
>
sandy_perdue
Messages postés8Date d'inscriptionsamedi 3 janvier 2015StatutMembreDernière intervention 4 janvier 2015 3 janv. 2015 à 19:05
Il faut activer les sessions sur toutes tes pages. ....
session_start ();
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 avril 2024344 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. ..
sandy_perdue
Messages postés8Date d'inscriptionsamedi 3 janvier 2015StatutMembreDernière intervention 4 janvier 2015
>
jordane45
Messages postés38145Date d'inscriptionmercredi 22 octobre 2003StatutModérateurDernière intervention25 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...
Modifié par jordane45 le 3/01/2015 à 14:36
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:
dans ma page cible.php:
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