Page 1 sur 2
Passer une variable d'une page a une autre
Posté : 07 juil. 2011, 07:50
par rimie
Bonjour!
Je fais une requete dont je recupere mes donnee d'une BDD, je recois par exemple 10 recultats, alors je voudrais effectuer un clique et transmettre l'id de la valeur cliquee vers une autre page pour l'utiliser dans une autre requete:
SELECT * FROM table;
num_rows = 10
while () {
echo '<a href="index.php?page=resultat">'.$valeur.'</a>';
}
donc j'aurais un resultat:
valeur1
valeur2
valeur3
..
valeur10
sans mettre l'id au lien, comment puis je transferrer mon ID vers l'autre page?
avec la session il transmet le dernier id qui est 10, meme chose avec hidden.
merci
Re: Passer une variable d'une page a une autre
Posté : 07 juil. 2011, 08:13
par xTG
Si tu ne veux pas le passer en clair dans l'url il faut passer par POST.
Donc avec un formulaire avec un champ en hidden.
Re: Passer une variable d'une page a une autre
Posté : 08 juil. 2011, 05:28
par rimie
Si tu ne veux pas le passer en clair dans l'url il faut passer par POST.
Donc avec un formulaire avec un champ en hidden.
je l'ai essaye par ce code et ca marche pas, un id vide:
page1.php
echo '<form method="POST" action="page2.php">';
foreach($tabl_ti as $row_ti)
{
echo '<input type="hidden" name="id" value="'.$row_ti->id.'" />';
page2.php:
page 2
<?php
print_r($_POST);
if(IsSet($_POST['id']))
{
echo 'existe';
}
else
{
echo 'not found';
}
?>
Re: Passer une variable d'une page a une autre
Posté : 08 juil. 2011, 08:02
par xTG
D'une part je vois un souci, tu fais une boucle sur un champ input ayant le même nom...
D'autre part comment postes-tu ton formulaire ?
Re: Passer une variable d'une page a une autre
Posté : 10 juil. 2011, 04:32
par rimie
D'une part je vois un souci, tu fais une boucle sur un champ input ayant le même nom...
D'autre part comment postes-tu ton formulaire ?
j'ai mis l'id dans le nom de l'input, et je transmets mes variables par la method POST
Re: Passer une variable d'une page a une autre
Posté : 10 juil. 2011, 10:45
par sirakawa
Déja on peut mettre <input type='text'...> pour voir la valeur passée, ce qui renseignera sur ce qu'on a vraiment écrit.
Mettre un print_r($_POST) au début de la page réceptrice.
Remplacer <...name='id'..> par <...name= 'id[]'...> (paire de crochets; je me sers des quotes simples parce que je passe tout par print...)..
Et on devrait commencer à entrevoir la solution...
Re: Passer une variable d'une page a une autre
Posté : 10 juil. 2011, 12:29
par rimie
print_r me retourne un array vide
et pour l'id[] je l'ai mis en variable
Re: Passer une variable d'une page a une autre
Posté : 10 juil. 2011, 12:59
par Ryle
Si l'array est vide, c'est que rien n'est envoyé en post... ton formulaire est-il bien fermé ? comment indiques-tu quelle ligne est envoyée ?
Montre nous le code complet de ta boucle plutôt que des fragments de codes incomplets qui ne permettent pas de voir ce que tu fais

Re: Passer une variable d'une page a une autre
Posté : 10 juil. 2011, 15:30
par sirakawa
tenter :
<input type = 'text'...> au lieu de <input type= 'hidden'...> pour voir ce que input a dans le ventre
puis /ou
avant :
Code : Tout sélectionner
foreach($tabl_ti as $row_ti)
{
echo '<input type="hidden" name="id" value="'.$row_ti->id.'"
Code : Tout sélectionner
print_r ($table_ti);
foreach($tabl_ti as $row_ti)
{
echo '<input type="text" name="id" value="'.$row_ti->id.'"
puis si ce print_r montre les valeurs que tu attends:
Code : Tout sélectionner
foreach($tabl_ti as $row_ti)
{
print_r($row_ti);
echo '<input type="text" name="id" value="'.$row_ti->id.'"
de toutes façons il faut name= 'id []'
essaie pour voir avec
Code : Tout sélectionner
for ($i= 1; $i <5; $i++);
print "<input type= 'text' name= 'essai' value ='$i'>
<input type= 'text' name= 'tablo[]' value ='$i'>";
endfor;
et print_r($_POST); dans le script appelé....
Re: Passer une variable d'une page a une autre
Posté : 11 juil. 2011, 02:30
par rimie
voila le code en entier:
<?php
echo '<form method="POST" action="page2.php">';
foreach($tabl_ti as $row_ti)
{
echo '<input type="hidden" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
if ($i%4 == 0) echo '<tr align="center">';
$i++;
$_pic = $path2sh.$row_ti->sh_tran.'.png';
$check = new Valid_File_Check($_pic);
if($check->isValid($_pic)){
$pic = '<img src="'.$_pic.'" width="100" height="100">';
} else {
$pic = '<img src="'.$path2sh.'UnknownProfile.png" width="100" height="100">';
}
echo '<td width="160">';
echo $pic.'<br>';
echo '<span class="Span01">';
echo '<a href="'.$row_tilawa->sheikh_tran.'.html" class="info"><b>'.$row_ti->she_br.'</b></a>';
echo '<span>';
echo '</td>';
if ($i%4 ==0)echo "</tr>";
}
echo '</form>';
}
echo '</table>';
?>
Re: Passer une variable d'une page a une autre
Posté : 11 juil. 2011, 08:10
par xTG
Faut pas chercher plus loin...
<table><form><input /><tr>
C'est valide ça en HTML ? Non...
Commences par avoir un HTML qui n'est pas sorti du chapeau d'un magicien et qui n'a pas trois jambes et ensuite on pourra peut être partir sur de bonnes bases de debug si cela n'arrange pas la chose.

Re: Passer une variable d'une page a une autre
Posté : 11 juil. 2011, 10:53
par sirakawa
Il y a quand même des outils avec Firefox et Opera qui aideraient beaucoup à savoir où ça en est.
Je répète de mettre 'text' à la place de 'hidden' pour voir si les valeurs qu'on croit passer sont bien présentes.
Une autre solution est d'afficher le code source de la page.
Une troisième est d'utiliser la console d'erreur de Firefox ET celle d'Opera, plus tatillon et plus bavard sur les erreurs...)
Enfin, si le print_r sur la page réceptrice dit Array() c'est que rien n'a été transmis :
sans quoi on aurait une liste de noms de champs style [toto]=>12.
Une question bête : il m'est arrivé lors de changements de présentation de mes pages de ne pas mettre le bouton submit et </form>
dans le bon ordre, ou d'oublier le </form>; alors pour peu qu'il y ait un autre <form> plus loin...
Re: Passer une variable d'une page a une autre
Posté : 11 juil. 2011, 12:21
par rimie
le meme probleme:
<?php
echo '<form method="POST" action="sheikh.php">';
echo '<table width="600" align="center" cellpadding="3" border="0">';
echo '<tr align="center" bgcolor="#42afdc"><td colspan="4">';
echo '</td></tr>';
foreach($tabl_ti as $row_ti)
{
if ($i%4 == 0) echo '<tr align="center">';
$i++;
$sh_pic = $path2sh.$row_ti->sh_tran.'.png';
$check = new Valid_File_Check($sh_pic);
if($check->isValid($sh_pic)){
$pic = '<img src="'.$sh_pic.'" width="120" height="100">';
} else {
$pic = '<img src="'.$path2sh.'UnknownProfile.png" width="120" height="100">';
}
echo '<td width="160">';
echo '<input type="text" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
echo '<div class="Span02">'.$pic.'</div>';
echo '<span class="Span01">';
echo '<a href="'.$row_ti->sh_tran.'.html" class="info"><b>'.$row_ti->sh_a.'</b></a>';
echo '<span>';
echo '</td>';
if ($i%4 ==0)echo "</tr>";
}
}
echo '</table>';
echo '</form>';
?>
Re: Passer une variable d'une page a une autre
Posté : 11 juil. 2011, 22:16
par sirakawa
voit-on quelque chose dans le input:
echo '<input type="hidden" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
Si c'est nom, ça vient d'avant:
foreach($tabl_ti as $row_ti)
print"$row_ti"; ou print_r($row_ti);
et ça devrait indiquer comment continuer.
Re: Passer une variable d'une page a une autre
Posté : 12 juil. 2011, 02:55
par rimie
voit-on quelque chose dans le input:
echo '<input type="hidden" name="'.$row_ti->id.'" value="'.$row_ti->id.'" />';
Si c'est nom, ça vient d'avant:
foreach($tabl_ti as $row_ti)
print"$row_ti"; ou print_r($row_ti);
et ça devrait indiquer comment continuer.
avec un print_r ca me donne:
stdClass Object ( [id] => 43 [sh_a] => nom1 [sh_tr] => prenom1 [nationality] => nat1 [country_code] => na [sh_url] => url1 [count] => 1 [views] => 12 [qu] => 1 [ana] => 0 [dk] => 0 [dr] => 0 [BTV] => 0 [tl] => 0 [anam] => 0 [sr] => 0 [fi] => 0 [Pub] => 0 [ah] => 0 [ad] => 0 [Misc] => 0 )