Comment mettre la bonne valeur en session ?

Eléphant du PHP | 226 Messages

20 avr. 2008, 11:15

Bonjour,

je suis dans ce type de processus pour afficher des informations:
while($data = mysql_fetch_array($requete)){
    echo '<a href="file.php?ID='.$data['id'].'">'.$data['nom'].'</a>';
}
J'aimerais ne pas envoyer la variable ID par url mais la mettre en session. Mais comment trouver la bonne, puisque je me trouve dans une boucle ?
merci,
«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.

x@v
Mammouth du PHP | 570 Messages

20 avr. 2008, 11:48

as tu essayer de créer un tableau dans ta session
$_SESSION['tab']=array();
ensuite tu associe ton tableau à ta clé.
$_SESSION['tab']=$cle;
puis vérifie le contenu. en faisant du dumping ;)
var_dump($_SESSION['tab']);

Eléphant du PHP | 226 Messages

20 avr. 2008, 14:30

C'est intéressant... Mais je crois qu'il faut que j'expose ce pourquoi j'ai besoin de conserver en mémoire cette valeur. Dans le fichier appelé par le lien :
echo '<a href="file.php?ID='.$data['id'].'">'.$data['nom'].'</a>';
je me sers de cette variable pour afficher certaines informations relatives à cette id et via une nouvelle requête. Mais dans cette page se trouve également un formulaire comportant deux listes déroulantes dynamiques liées (je me suis d'ailleurs basé sur le tutoriel de Cyrano) Lorsque l'utilisateur emploie la première liste pour afficher les informations dans la seconde, il y a donc un rafraichissement de la page qui s'effectue, entraînant la disparition de la valeur de l'id, et des informations qui en découlent. Pas bien...
D'où ma question sur la mise en session (mais peut-être y-a t-il un autre moyen)
merci,
«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.

x@v
Mammouth du PHP | 570 Messages

20 avr. 2008, 14:50

pour moi il faut que tu montres plus de code, alors grosso modo il faut travailler sur l'architècture du projet et ainsi à travers les redirections on arrive à toutes sortes de chose ou de truc.

Eléphant du PHP | 226 Messages

21 avr. 2008, 10:02

Bonjour,

Ok, rentrons donc dans le code. Dans mon premier fichier (listeApp.php), j'ai une liste de liens générés par une boucle:
while($data = mysql_fetch_array($requete)) { 
...
echo'<tr><td width="25%"><a href=\'javascript: MM_openBrWindow("editContrat.php?App='.$data['idapp'].'","","scrollbars=yes,resizable=yes,width=700,height=500")\'>'.$data['CiviliteApp'].' '.$data['NomApp'].' '.$data['PrenomApp'].'</a></td><td>';
...';
}
Chacun de ces liens envoie une variable 'App' contenant un identifiant, que je récupère dans le fichier 'editContrat.php' et que j'insère dans une requête pour afficher certaines informations relatives à cet identifiant:
if(isset($_GET['App']) && !empty($_GET['App'])){
	$idApp = $_GET['App'];
}
...
$select = 'SELECT * FROM suiviapprentis WHERE idapp= \''.$idApp.'\';';
$requete = mysql_query($select) or die('Erreur SQL! Nous avons un problème avec la base de données. Il sera résolu dans peu de temps <br>'.$select.'<br>'.mysql_error());
$data1 = mysql_fetch_array($requete);
...
// affichage des données:
<?php echo $data1['Diplome']; ?>
Jusque là, pas de problème, mais plus loin dans la page, j'ai un formulaire contenant deux listes dynamiques liées. La première, qui ordonne le rafraichissement de la page afin d'afficher les données de la seconde. Et c'est à ce moment là que je me perds mes premières données (<?php echo $data1['Diplome']; ?>) puisque $idApp est vidée
<select name="diplome" id="diplome" onchange="document.forms['editContrat'].submit();">
      	...
</select>
Comment palier à cela ?
merci,
«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.

x@v
Mammouth du PHP | 570 Messages

21 avr. 2008, 10:21

fais des echo sur
$idApp = $_GET['App'];
après j'avoue ne pas comptrendre, elle est vide cette variable, mais dans quel contexte ?

Eléphant du PHP | 226 Messages

21 avr. 2008, 10:41

Pas de problème pour $idApp = $_GET['App'] lors du premier affichage (j'ai déjà vérifié) mais elle se vide lorsque je réaffiche cette même page avec 'onchange="document.forms['editContrat'].submit();', puisqu'elle est envoyée depuis 'listeApp.php'.
«Le matin, quand il t’en coûte de te réveiller, que cette pensée te soit présente: c’est pour faire œuvre d’homme que je m’éveille.»
Marc Aurèle.