Checkbox + tableau + popup

[Résolu]
Signaler
Messages postés
52
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
5 août 2008
-
Messages postés
52
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
5 août 2008
-
Bonjour,

J'affiche dans un popup un tableau contenant toutes les
informations d'une table et je place sur chaque ligne une checkbox qui
servira à choisir les lignes que l'on veut modifier. J'aimerai
recupérer le 1er champs de chaque lignes selectionnées dans une
variable et recupérer ensuite cette varable sur la page principal.

Le problème est que je n'arrive pas à récupérer ces valeurs.

Quelqun pourrait-il m'aider?



voici mon code :

//page principale

<?php
...
$result = mysql_query("SELECT * FROM table");
?>
<html>
<SCRIPT language="JavaScript">
f=open("modifpop.php",'','width=710,height=400,top=0,left=0,toolbar=no,scrollbars=yes,resizable=no,location=no,menubar=no');
</SCRIPT>

<?php
echo '----
';
for($i=0;$i<count($_POST['choixModif']);$i++)
{
mysql_data_seek($result,$_POST['choixModif'][$i]);
$champs=mysql_fetch_array($result);
for($j=0;$j<10;$j++)
{
echo''.$champs[$j].', ';
}
echo\"\";
}
?>

</html>

//popup
<?php
...
echo"\";
for($i=0;$i<mysql_num_rows($result);$i++)
{
mysql_data_seek($result,$i);
$champs=mysql_fetch_array($result);
echo \"----
\";
for($j=0;$j<10;$j++)
{
if($j==0)
echo', ';
echo''.$champs[$j].', ';
}
echo\"\";
}
echo"
";
echo '<form method="post" action="modif.php"></form>';

?>

8 réponses

Messages postés
52
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
5 août 2008

Problème résolu !!merci à ceux qui ont cherché la solution
solution au pb :

//page maitresse

<?php
session_start();
echo "";
print_r($_SESSION);
echo "

";
if (isset($_SESSION['choixModif']))
{
// tu affiches tes lignes à modifier
echo 'select réussi';
foreach ($_SESSION['choixModif'] as $key => $value)
{echo "ID $key : value $value
\n";
}
// suppression des variables de session
unset ($_SESSION['choixModif']);
}
else
{
//affichage la page normale (avant popup)
echo "1er passage dans la fenetre";
echo "<SCRIPT language='JavaScript'>
popup=window.open('modifpop.php','','width=900,height=400,top=300,left=350,toolbar=no,scrollbars=yes,resizable=no,location=no,menubar=no');
</SCRIPT>";
}





//popup

<?php
session_start();
[ ... ]
$result = mysql_query("SELECT * FROM baie_port");

if(isset($_POST['choixModif']))
{
$_SESSION['choixModif']=$_POST['choixModif'];
[ ... ]

echo 'exit();';
}
else
{
[ ...]

echo"\";
echo '<form method=\"POST\" action=\"modifpop.php\">';
for($i=0;$i<mysql_num_rows($result);$i++)
{
mysql_data_seek($result,$i);
$champs=mysql_fetch_array($result);
echo \"----
\";
for($j=0;$j<10;$j++)
{
if($j==0)
echo ', ';
echo ''.$champs[$j].', ';
}
echo \"\";
}
echo "
";
echo '</form>';

echo '
</html>';
}

?>
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Hello,

tes checkbox ne sont pas dans le formulaire...
Et tes champs input hidden n'ont aucune valeur. Pire, le tableau choixModif[] va être de toutes façons celui de ton champ hidden, sans valeur...
Heu enfin bref, trop de truc à dire!

Vure moi ce input hidden,
mets ton formulaire dans ton tableau (ou l'inverse). tes checkbox doivent être dans ce formulaire.

Autre chose : on ne met pas de count() dans un for (), car for () réévalue ses conditions à chaque itération; bref, tu comptes ton tableau autant de fois que tu as d'entrées dans ton tableau. Sors le :
$cpt = count (tab);
for ($i = 0; $i < $cpt; $i++) {}
Messages postés
52
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
5 août 2008

comme sa ?

echo"\";
for($i=0;$i<mysql_num_rows($result);$i++)
{
mysql_data_seek($result,$i);
$champs=mysql_fetch_array($result);
echo \"----
\";
for($j=0;$j<10;$j++)
{
if($j==0)
echo'<form></form>, ';
echo''.$champs[$j].', ';
}
echo\"\";
}
echo"
";
echo '<form method="post" action="modif.php"></form>';
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Pourquoi tu gardes ton dernier formulaire ??

Non :
<form...>
//requete
// boucle
// checkboxes
//sortie de boucle
// bouton
</form>
Messages postés
52
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
5 août 2008

Sa devrait etre sa (je ne sais pas du tout pourquoi e garder le 2nd form ):

echo"\";
for($i=0;$i<mysql_num_rows($result);$i++)
{
mysql_data_seek($result,$i);
$champs=mysql_fetch_array($result);
echo \"----
\";
echo '<form method=\"post\" action=\"modif.php\">';
for($j=0;$j<10;$j++)
{
if($j==0)
echo '</form>, ';
echo ''.$champs[$j].', ';
}
echo \"\";
}
echo "
";
echo '</form>';
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
C'est mieux :-)
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
25
Maintenant, je ne suis pas sûr que cela fonctionne ton bin's...faudra peut-être du javascript pour retourner au document parent...
Messages postés
52
Date d'inscription
mercredi 27 avril 2005
Statut
Membre
Dernière intervention
5 août 2008

merci,
mais maintenant c'est pour la récupération que j'ai du mal
sa ne change ri1 à ma page une foi le popup fermé !
mon code de la page principale:
<?php
[ ... ]
$result = mysql_query("SELECT * FROM ma_table");
?>
<html>
<head>
<title>Modifier</title>
</head>
<SCRIPT language="JavaScript">
f=open("modifpop.php",'','width=710,height=400,top=0,left=0,toolbar=no,scrollbars=yes,resizable=no,location=no,menubar=no');
</SCRIPT>

<?php
function affiche($a)
{
for($i=0;$i<count($a);$i++)
{
echo\"$a[$i]\";
echo \"hello\";
}
}

if(isset($_POST['recu_choixModif']))
{
echo '----
';
$rows=count($_POST['recu_choixModif']);
for($i=0;$i<$rows;$i++)
{
mysql_data_seek($result,$_POST['recu_choixModif'][$i]);
$champs=mysql_fetch_array($result);
for($j=0;$j<10;$j++)
{
echo''.$champs[$j].', ';
}
echo\"\";
}
}
?>


</html>