Recup de checkbox en javascript/php

Fermé
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 - 12 févr. 2009 à 08:23
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 - 18 févr. 2009 à 07:58
Bonjour,

J'ai une petit problème

Je vous décrit ma page : j'ai un premier tableau avec quelque collonnes et plus particulièrement des checkbox
(checkbox car l'utilisateur doit pouvoir choisir plusieurs lignes)
ensuite j'ai trois bouttons ajouter modifier et supprimer
enfin un deuxième tableau et au lieu de checkbox des radio.

Mon problème aujourd'hui est de récupérer grâce a une fonction javascript la ou les valeurs coché par l'utilisateur des checkbox pour les transmettre dans une popup.

Alors hier on m'a aidé (car je suis une bille en JS c'est du charabiat) a faire une fonction pour récupérer les valeurs radio
et l'on m'a dit que c'était le meme système sauf qu'il faut récupérer les valeurs dans un tableau.

Si ca peut vous donner une indication

je vous met la fonction JS

function ouvreFenetreModifier()
{
valeurCheckDansLien="";
TabChecks=document.getElementsByName('check');
TCL=TabChecks.length;
for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché
if(TabChecks[i].checked) {
valeurCheckDansLien="Modif_plan.php?check="+TabChecks[i].value;
}
}
if( valeurCheckDansLien.length > 0){// si un radio est coché
window.open(valeurCheckDansLien, "", config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');
} else {
alert("pas de d'arrêts chaînes selectionné !") //si pas de radio coché
}

}

ainisi que mon tableau en php

echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> <input type='checkbox' name='checkbox1' > </td>";
echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
echo "</tr>";

Si vous pouvez m'aider svp

merci d'avance
A voir également:

35 réponses

drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
13 févr. 2009 à 09:45
Excuse moi mec mais j'ai encore besoin de tes lumières...

dans la page plan action j'envoie les donnée des checkbox (ce que tu as fait hier) dans la page form_action

foreach($_GET as $val)
{
$_SESSION['val'] = $val;
}

enfin je veut récupérer ca pour faire ma requete mais ca ne passe pas hélas

foreach($_SESSION as $val)
{
$requete = "UPDATE ARRET_CHAINE
SET NUMERO_PLAN_ACTION = '$result'
WHERE NUMERO_ARRET_CHAINE = $val";
$req = odbc_exec($conn,$requete) or die('Erreur SQL : <br />'.$requete);
}

je n'est pas d'erreur mais ca ne s'insère pas
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
13 févr. 2009 à 13:54
Modifie ça :
foreach($_SESSION as $val)
{
$requete = "UPDATE ARRET_CHAINE
SET NUMERO_PLAN_ACTION = '$result'
WHERE NUMERO_ARRET_CHAINE = $val";
$req = odbc_exec($conn,$requete) or die('Erreur SQL : <br />'.$requete);
}

Par ça :
foreach($_SESSION as $val)
{
$requete = "UPDATE ARRET_CHAINE
SET NUMERO_PLAN_ACTION = '$result'
WHERE NUMERO_ARRET_CHAINE = $val";
echo 'requete : ' . $requete . '<br />';
//$req = odbc_exec($conn,$requete) or die('Erreur SQL : <br />'.$requete);
}

Tu auras toutes tes requetes qui vont s'afficher!
Si tu ne trouves pas l'erreur dessus, tu essaye de les executer dans ta base de données.
Il va te donner l'erreur normalement.
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
13 févr. 2009 à 14:12
excuse mais il n'y a pas d'erreur en faite!!!

J'ai testé ton dernier post et donc le problème c'est que la requete n'est que sur une page de traitement dc le echo est impossible j'ai testé dans la bdd et la ca a bien fonctionné pourrais je te mettre le code des trois pages concerné car la je suis perdu je ne voi pas ce qui marche pas... stp
0
guispider Messages postés 50 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 31 mai 2009 3
13 févr. 2009 à 15:43
Tien une réponse mais j'ten donne pas comme tu veux pas m'aider
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
13 févr. 2009 à 16:06
Oui envoie les codes de tes pages je vais essayer de voir ça ...
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
13 févr. 2009 à 16:09
je sais ke ca va faire long mais regarde stp

plan_action.php



<form method="post" action="Plan_action.php" >

<body>
<?php



//--------------- Bannière ---------------//

echo" <div id='ban2' > </div>";

//--------------- Choix de la période ---------------//


echo" <div id='cal_debut'></div>";

echo"<div style='text-align: center;'>";
echo"<input name='debut_periode' value='Début de période' class='calendrier' type='text'>";
echo"  ";
echo"<input name='fin_periode' value='Fin de période' class='calendrier' type='text'>";

//--------------- Button SUBMIT qui charge le tableau ---------------//

echo "  ";
echo"<input value='Ok' name='button' type='submit'>";
echo"</div><br>";

require('Connexion.php');

//--------------- Requete appelant le POST selectionné ---------------//


$DATE_DEBUT = $_POST['debut_periode']." 00:00:00";
$DATE_FIN = $_POST['fin_periode']." 00:00:00";


list($datedeb, $heure_deb)=explode(" ",$DATE_DEBUT);
list($datefin, $heure_fin)=explode(" ",$DATE_FIN);

list($jj_deb, $mm_deb, $yy_deb)=explode("/",$datedeb);
list($jj_fin, $mm_fin, $yy_fin)=explode("/",$datefin);

$date_deb = $yy_deb."-".$mm_deb."-".$jj_deb;
$date_fin = $yy_fin."-".$mm_fin."-".$jj_fin;


//--------------- Tableaux des arrêts chaîne ---------------//

//--------------- Requete du tableau des arrêts chaîne ---------------//

if (isset($_POST['debut_periode']) && isset($_POST['fin_periode']))
{
$sql0="SELECT * FROM ARRET_CHAINE WHERE DEBUT BETWEEN #$date_deb# AND #$date_fin#" ;
$rs = odbc_exec($conn,$sql0) or die('Erreur SQL : <br />'.$sql0);
}
//--------------- Tableau des arrêts chaîne ---------------//

echo "<div style='overflow-y: scroll; height: 181'> ";

echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";
echo "<tr>";

echo "<table style='width: 968px; height: 60px;' border='5' cellpadding='2' cellspacing='1'>"; // Taille du tableau //
echo "<tbody>";

echo "<tr>";
echo "<td class='table-titre' colspan='9'> Tableau des arrêts chaîne </td>";
echo "</tr>";


echo "<tr>";
echo "<td class='table-entete-centre' width='20'>Choix</td>";
echo "<td class='table-entete-centre' width='20'>Type</td>";
echo "<td class='table-entete-centre' width='20'>Début</td>";
echo "<td class='table-entete-centre' width='20'>Fin</td>";
echo "<td class='table-entete-centre' width='20'>Constat</td>";
echo "<td class='table-entete-centre' width='20'>Demande </td>";
echo "<td class='table-entete-centre' width='20'>Cause</td>";
echo "<td class='table-entete-centre' width='20'>Information</td>";
echo "<td class='table-entete-centre' width='20'>Imputation</td>";
echo "</tr>";
if (isset($_POST['debut_periode']) && isset($_POST['fin_periode']))
{
while (odbc_fetch_row($rs))
{
$NUM=odbc_result($rs,"NUMERO_ARRET_CHAINE");
$TYPE=odbc_result($rs,"TYPE");
$DEBUT=odbc_result($rs,"HEURE_DEBUT");
$FIN=odbc_result($rs,"HEURE_FIN");
$CONSTAT=odbc_result($rs,"CONSTAT");
$DEMANDE=odbc_result($rs,"DEMANDE");
$CAUSE=odbc_result($rs,"CAUSE");
$INFO=odbc_result($rs,"COMPLEMENT_INFORMATION");
$IMPUTATION=odbc_result($rs,"IMPUTATION");

echo "<tr>";
echo "<td class='table-ligne1-centre' width='100'> <input type='checkbox' name='checkbox1' value='" . $NUM . "' /> </td>";
echo "<td class='table-ligne1-centre' width='100'>$TYPE</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEBUT</td>";
echo "<td class='table-ligne1-centre' width='100'>$FIN</td>";
echo "<td class='table-ligne1-centre' width='100'>$CONSTAT</td>";
echo "<td class='table-ligne1-centre' width='100'>$DEMANDE</td>";
echo "<td class='table-ligne1-centre' width='100'>$CAUSE</td>";
echo "<td class='table-ligne1-centre' width='100'>$INFO</td>";
echo "<td class='table-ligne1-centre' width='100'>$IMPUTATION</td>";
echo "</tr>";

}
}

echo "</tbody>";
echo "</table>";

echo "</tr>";
echo "</tbody>";
echo "</table>";

echo "</div>";
?>

<!--------------- Boutton --------------->

<br>

<div style="text-align: center;">

<input type="button" name="lien1" value="Ajouter un plan d'action" onclick="ouvreFenetreAjouter();">   

<input type="button" name="lien2" value="Modifier" onClick="ouvreFenetreModifier();">   

<input type="button" name="lien3" value="Cloturer" onClick="ouvreFenetreCloturer();">   

<br><br>
</div>

<!--------------- Tableau des plans d'action --------------->

<?php

require('Connexion.php');
require('Requete.php');

//--------------- Requete du tableau des plans d'action ---------------//

$sql1="SELECT * FROM PLAN_ACTION ";

$req = odbc_exec($conn,$sql1) or die('Erreur SQL : <br />'.$sql1);

echo "<div style='overflow-y: scroll; height: 180'>";
echo "<table border='0' cellpadding='0' cellspacing='0' width='500'>";
echo "<tbody>";

echo "<tr>";
echo "<table style='width: 973px; height: 115px;' border='5' cellpadding='2' cellspacing='1'>";
echo "<tbody>";

echo "<tr>";
echo "<td class='table-titre' colspan='6'> Tableau des plans d'action</td>";
echo "</tr>";

echo "<tr>";
echo "<td class='table-entete-centre' width='20'></td>";
echo "<td class='table-entete-centre' width='150'>Intitulé</td>";
echo "<td class='table-entete-centre' width='5'>Délai</td>";
echo "<td class='table-entete-centre' width='50'>Pilote</td>";
echo "<td class='table-entete-centre' width='10'>Cloture</td>";
echo "<td class='table-entete-centre' width='30'>Complément </td>";
echo "</tr>";

while (odbc_fetch_row($req))
{
$CHOIX= odbc_result($req,"NUMERO_PLAN_ACTION");
$INTITULE=odbc_result($req,"INTITULE");
$DELAI=odbc_result($req,"DELAI");
$PILOTE=odbc_result($req,"PILOTE");
$CLOTURE=odbc_result($req,"CLOTURE");
$COMPLEMENT_CLOTURE=odbc_result($req,"COMPLEMENT_CLOTURE");


echo "<tr>";
echo "<td class='table-ligne1-centre' width='20'> <input type=\"radio\" id=\"check\" name=\"check\" value='".$CHOIX."' /> </td>";
echo "<td class='table-ligne1-centre' width='150'>$INTITULE</td>";
echo "<td class='table-ligne1-centre' width='10'>$DELAI</td>";
echo "<td class='table-ligne1-centre' width='50'>$PILOTE</td>";
echo "<td class='table-ligne1-centre' width='10'>$CLOTURE</td>";
echo "<td class='table-ligne1-centre' width='30'>$COMPLEMENT_CLOTURE</td>";
echo "</tr>";

}

echo "</tbody>";
echo "</table>";
echo "</tr>";
echo "</tbody>";
echo "</table>";

//--------------- Fin de la page Action ---------------//
?>
</body>

</form>

<!##########################################################################################################################>

</html>


<?php
session_start();
?>


<form method="post" action="Formulaire_add_plan.php">

<body>

<!------------------ Bannière ------------------>

<div id="ban3"> </div>

<br>

<!------------------ Intitulé du plan ------------------>

Intitulé :
<input name="INTITULE" value="" maxlength="50" size="50" type="text">

<br><br>

<?php
//--------------- Champs de saisie du délais ---------------//


foreach($_GET as $val)
{
$_SESSION['val'] = $val;
}


echo"<div>";

echo"Délai : ";
echo"<input name='d' value='' class='calendrier' type='date'> ";
echo"</div>";

?>

<br>

Pilote :
<input name="PILOTE" value="" maxlength="50" size="50" type="text">

<br><br><br>


<!------------------ Boutton ------------------>


<div style="text-align: center;">

<input value="Valider" onclick="self.close()" name="button" type="submit">

</div>



</body>
</form>
<!##########################################################################################################################>

</html>


<?php
session_start();

//--------------- Connexion à la base ---------------//

require('Connexion.php');

//--------------- Définition des variable de la table ---------------//

$INTITULE = $_POST['INTITULE'];
$DELAI = $_POST['DELAI'];
$PILOTE = $_POST['PILOTE'];


//--------------- Calcul et incrémente le numéro ---------------//

$sqlnum = " SELECT MAX(NUMERO_PLAN_ACTION)
FROM PLAN_ACTION";

$req = odbc_exec($conn,$sqlnum) or die('Erreur SQL : <br />'.$sqlnum);

{
$result=odbc_result($req);
}
$result++;

//--------------- Requete éxecuté dans la table ---------------//

$sql1 = " INSERT INTO PLAN_ACTION (NUMERO_PLAN_ACTION, INTITULE, DELAI, PILOTE)
VALUES ($result, '$INTITULE', '$DELAI', '$PILOTE')";

foreach($_SESSION as $val)
{
$requete = "UPDATE ARRET_CHAINE
SET NUMERO_PLAN_ACTION = '$result'
WHERE NUMERO_ARRET_CHAINE = $val";
//echo 'requete : ' . $requete . '<br />';
$req = odbc_exec($conn,$requete) or die('Erreur SQL : <br />'.$requete);
}

$req = odbc_exec($conn,$sql1) or die('Erreur SQL : <br />'.$sql1);

?>jette un oeuil stp j'en peut plus
0
guispider Messages postés 50 Date d'inscription mardi 25 novembre 2008 Statut Membre Dernière intervention 31 mai 2009 3
13 févr. 2009 à 16:09
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
13 févr. 2009 à 16:11
Dimitri est en train d'essayer de t'aider déjà :)
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
13 févr. 2009 à 16:37
foreach($_GET as $val)
{
$_SESSION['val'] = $val;
}

Là tu réinitialise toujours la même variable SESSION, c'est normal? ...

Il faudrait plutôt mettre ça :

foreach($_GET as $key=>$val) {
$_SESSION[$key] = $val;
}

Essaie ça et dis moi si ça change quelque chose ...
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
13 févr. 2009 à 18:03
oui effectivement quand je test ca et que je fais un echo ca marche mais ca doit déconner dans lotre page avec le update je sais pas pourquoi...
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
17 févr. 2009 à 08:24
salut passarinho44,

en ayant modifier comme tu me l'avait conseillé dans ton post au dessus une de mes deux requetes s'insère
le insert into.

Mais toujours le meme problème avec le update

j'ai fait ca :

foreach($_SESSION[$key]as $key=>$val)
{
$requete = "UPDATE ARRET_CHAINE
SET NUMERO_PLAN_ACTION = '$result'
WHERE NUMERO_ARRET_CHAINE = $val";
//echo 'requete : ' . $requete . '<br />';
$req = odbc_exec($conn,$requete) or die('Erreur SQL : <br />'.$requete);
}

peut tu me dire si c'est normal que le update ne marque pas d'erreur et qu'il n'insère rien dans la table stp?
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 févr. 2009 à 09:57
Tu peux afficher la requete avec le echo et me la montrer stp?
A priori je ne vois pas d'erreur ...

Quand tu as un problème de requete qui ne s'execute pas, essaie toujours de l'afficher et de l'executer directement dans ta base.
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
17 févr. 2009 à 10:27
je l'ai fait je l'ai éxécuter et ca passe dans la base mais pas par le code

en fait j'ai 3 pages tu vois la page plan action avec le tableau

ensuite la page x jrécup la valeur des checkbox

enfin la page de traitement y

et j'ai mis la requete dans la page x et la c'est bon je suis sur que je récupère car j'ai fait le echo par contre dans la page de traitement je ne sais pa scomment faire pour faire en sorte que je vois la requete pour etre sur que les valeurs passent

donc si ta une idée...
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
17 févr. 2009 à 10:45
Ben enlève le renvoie dans la page de traitement.

Ton echo va s'afficher normalement.
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
17 févr. 2009 à 10:52
Effectivment...

Alors

voici le code de ma page

<?php
session_start();
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<!##########################################################################################################################>

<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">

<title>Ajout d'un plan d'action</title>

<link rel="stylesheet" media="screen" type="text/css" title="identification" href="Require\Application.css">

</head>

<body>

<?php
//--------------- Connexion à la base ---------------//

require('Require\Connexion.php');

//--------------- Définition des variable de la table ---------------//

$INTITULE = $_POST['INTITULE'];
$DELAI = $_POST['d'];
$PILOTE = $_POST['PILOTE'];


//--------------- Calcul et incrémente le numéro ---------------//

$sqlnum = " SELECT NUMERO_PLAN_ACTION
FROM PLAN_ACTION";

$req = odbc_exec($conn,$sqlnum) or die('Erreur SQL : <br />'.$sqlnum);
{
$result=odbc_result_all($req);
}
$num = $result++;

//--------------- Requete éxecuté dans la table ---------------//

$sql1 = " INSERT INTO PLAN_ACTION (NUMERO_PLAN_ACTION, INTITULE, DELAI, PILOTE)
VALUES ($num, '$INTITULE', '$DELAI', '$PILOTE')";

foreach($_SESSION[$key]as $key=>$val)
{
$requete =" UPDATE ARRET_CHAINE
SET NUMERO_PLAN_ACTION = '$result'
WHERE NUMERO_ARRET_CHAINE =".$val;
echo 'requete : ' . $requete . '<br />';
$req = odbc_exec($conn,$requete) or die('Erreur SQL : <br />'.$requete);
}

$req = odbc_exec($conn,$sql1) or die('Erreur SQL : <br />'.$sql1);

?>
</body>
</form>

</html>

et voici l'erreur car apparemment il ne prend pas la valeur

NUMERO_PLAN_ACTION
0

Warning: Invalid argument supplied for foreach()

qu'en pense tu?
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
17 févr. 2009 à 14:11
up
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
18 févr. 2009 à 07:58
up
0