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

Lol easy!!! Bjr drogba !!
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 09:40
salut spongeBob

alors motivé aujourd'hui? ^^
0
Ouai chui motivé et toi ? ton pb tu t'en sort ?
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 10:32
bah non pas du tout sinon j'aurai mis résolue et le pire c'est que j'avance pas je comprend rien
0

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

Posez votre question
Non mai t'allucine c'est pas moi !!!!!
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 14:03
Tu voudrais que ta popup aie quoi comme adresse?

Genre Modif_plan.php?checkbox1=valeur1&checkbox2=valeur2&checkbox=valeur3&...

C'est ça que tu veux?
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 14:08
attend je te met ou j'en suis

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

echo "<td class='table-ligne1-centre' width='20'> <input type=\"radio\" id=\"check\" name=\"check\" value='".$CHOIX."' /> </td>";

function ouvreFenetreAjouter()
{
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="Formulaire_action.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é
}

}

voila après l'url perso je m'en fou de ce qu'elle a si ca peut te faciliter la tache...

donc la pour le moment je écupère que la dernière valeur que j'en coche plusieurs
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 14:24
Alors voilà la fonction :

function ouvreFenetreModifier() {
var valeurCheckDansLien="Modif_plan.php?";
TabChecks=document.getElementsByName('checkbox1');
TCL=TabChecks.length;
var j = 0;
for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché
if(TabChecks[i].checked) {
if ( j == 0 ) {
valeurCheckDansLien += "checkbox" + j + "=" + TabChecks[i].value;
j++;
} else {
valeurCheckDansLien += "&checkbox" + j + "=" + TabChecks[i].value;
j++;
}
}
}
if( j > 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');
alert ('valeur : ' + valeurCheckDansLien );
} else {
alert("pas de d'arrêts chaînes selectionné !");
}
}

Et tes checkbox faut qu'elles soient sous cette forme :

echo "<input type='checkbox' name='checkbox1' value='" . $valeur . "' />";
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 14:26
excuse moi mais pourquoi les checkboxs doivent t'il etre sous cette forme?

Car la value de mes checkbox est très importantes car elle me permet de retourné la clé primaire de mes tuples

je sais pas si je suis clair
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 14:39
Quand je dis sous cette forme je veux dire le même nom.
La valeur n'a pas d'importance pour la fonction Javascript.
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 14:41
Désolé j'avais pas compris avec les input j'ai fait ca mais ca n'ouvre pas le popup voyez vou pourquoi svp?

function ouvreFenetreAjouter() {
var valeurCheckDansLien="Formulaire_action.php?";
TabChecks=document.getElementsByName('checkbox1');
TCL=TabChecks.length;
var j = 0;
for( var i=0;i<TCL;i++) { // ici on parcourre les elements pour savoir lequel est coché
if(TabChecks[i].checked) {
if ( j == 0 ) {
valeurCheckDansLien += "checkbox" + j + "=" + TabChecks[i].value;
j++;
} else {
valeurCheckDansLien += "&checkbox" + j + "=" + TabChecks[i].value;
j++;
}
}
}
if( j > 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');
alert ('valeur : ' + valeurCheckDansLien );
} else {
alert("pas de d'arrêts chaînes selectionné !");
}
}

<input type='checkbox' name='checkbox1' value='" . $NUM . "' />

C'est bien un truc comme ca?
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 14:46
//window.open(valeurCheckDansLien, "", config='width=600, height=600, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');
alert ('valeur : ' + valeurCheckDansLien );

Voilà pourquoi ça n'ouvre pas les popup, la fonction qui les ouvre est en commentaire.

Mais tu dois avoir une ptite popup avec la valeur non?
C'est bien ça que tu veux comme valeur?
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 15:02
oui c'est tout a fait ca que je veut merci pour ton aide t trop fort

di moi j'aimerais te poser deux trois questions en plus si ca te dérange pas.


1- comment je récupère toute les valeurs cochés dans mon popup dans un premier temps.
2- ensuite un nouveau problème se pose a moi et je n'ai jamais fait ca .

En faite imagine deux champ input ou dedans on rentre une date (debut et fin)

en dessous tu as 5 liste déroulante et a coté un bouton ok

tout ca dois requeter la base.

Donc imaginons dans un premier temps l'utilisateur rentre sa période et clic sur ok donc ca envoie une requete et donc présente un tableau avec les arret chaine de cette période.
Ensuite, l'utilisateur choisit dans une des 5 listes déroulante le choix X donc le tableau faut qu'il garde ne mémoire la période et fasse le tri par rapport au choix X.
Ensuite il décide de refaire un autre choix Y et etc....

Comment voit tu le principe sans parler du code stp?
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 15:24
Pour répondre à ta prmière question, voilà comment les récupérer :

foreach($_GET as $key=>$val) {
echo ' le nom : ' . $key . ' et sa valeur : ' . $val . '<br />';
}

Pour ta deuxième question,

il faut que chaque champs garde en mémoire ce qui a été entré (avec un <?php if(isset($_POST['...']) ) echo 'value="' . $_POST['...'] . '"' ?> pour les champs textes et je te laisse chercher l'équivalent pour les listes déroulantes)
Mais sinon rien de compliqué, chaque fois que tu fais quelque chose, ça va modifier une variable diffférente (une variable pour chaque champs text et une variable pour chaque liste déroulante )
Cette variable sera récupéré par un $tavariable = $_POST['...'] (sans oublier de vérifier isset() avant ... )
Et ça modifiera la requete SQL qui servira à afficher le tableau.

Je ne sais pas si c'est très clair ... :s

Mais bon déjà pars sur ce que toi tu penses et si tu as des soucis ouvre une discussion et MP moi ! :)
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 15:43
merci pour tout vraiment...

Dis moi tu ais quoi comme métier quel est ton niveau d'étude pour aussi bien dévellopper??

Enfin une dernière question par rapport aux récupération des données

foreach($_GET as $key=>$val) {
echo ' le nom : ' . $key . ' et sa valeur : ' . $val . '<br />';
}

Je ne vois pas faire pour insérer ces données dans ma base une par une.

Pourrais tu m'aider svp?
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 15:56
Je suis en 2eme année de BTS Informatique de Gestion ^^
Je suis en stage actuellement et à fond dans une appli PHP/MySQL/Javascript ^^

Il y a quelques mois j'aurais même pas compris tout ce que tu me demandais ! ;)

Voilà comment ajouter dans une base (à adapter ;) )
foreach($_GET as $key=>$val) { 
	$requete = "INSERT INTO tatable (tonchamps) VALUES ('" . $val . "')";
	mysql_query($requete); 
} 
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 16:06
ok merci bcp encore une fois j'ai un dernier petit soucis promis

Pour le problème dans ma base le truc c'est que je dois insérer un numéro dans la table arret chaine mais dans les tuples qui ont les valeurs $val.

c'est pour transmettre la valeur d'une liste dans un popup

voici la liste

echo"<center><select name='liste' id='liste' size='1'>";
echo"<option>Choisissez une liste</option>";
echo"<option> </option>";
echo"<option>Type </option>";
echo"<option>Cause</option>";
echo"<option>Constat </option>";
echo"<option>Demande </option>";
echo"<option>Imputation </option>";
echo"</select>";

et la fonction

function ouvreFenetreListe()
{
valeurCheckDansLien="";
TabChecks=document.getElementsByName('liste');
TCL=TabChecks.length;

for( var i=0;i<TCL;i++)
{
if(TabChecks[i].checked)
{
valeurCheckDansLien="Formulaire_liste.php?check="+TabChecks[i].value;
}
}
if (valeurCheckDansLien.length > 0)
{
window.open(valeurCheckDansLien, "", config='width=600, height=560, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');
}
else
{
alert("Selectionnez une liste avant de cliquer sur valider")
}
}

j'arrive pas alors la fonction doit etre fausse car il me met sans cesse vous n'avez pas sélectionnez de liste
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 16:15
echo"<center><select name='liste' id='liste' size='1'>";
echo"<option>Choisissez une liste</option>";
echo"<option> </option>";
echo"<option>Type </option>";
echo"<option>Cause</option>";
echo"<option>Constat </option>";
echo"<option>Demande </option>";
echo"<option>Imputation </option>";
echo"</select>";

Déjà il y a un problème dans ta liste : tes option n'ont pas de valeurs ... :s
Remplace par ça :
echo"<center><select name='liste' id='liste' size='1'>";
echo"<option value=''>Choisissez une liste</option>";
echo"<option value=''> </option>";
echo"<option value='type'>Type </option>";
echo"<option value='Cause'>Cause</option>";
echo"<option value='Constat'>Constat </option>";
echo"<option value='Demande'>Demande </option>";
echo"<option value='Imputation'>Imputation </option>";
echo"</select>";

Ensuite pour ta fonction javascript, elle est beacoup plus simlpe ^^ :
function ouvreFenetreListe() {
var valeurListeDansLien="";
var liste = document.getElementById('liste');
if ( liste.value != "" ) {
valeurListeDansLien="Formulaire_liste.php?liste="+liste.value;
window.open(valeurListeDansLien, "", config='width=600, height=560, resizable=no, toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no');
} else {
alert("Selectionnez une liste avant de cliquer sur valider")
}
}
0
drogba7213 Messages postés 1524 Date d'inscription mardi 14 août 2007 Statut Membre Dernière intervention 3 avril 2010 21
12 févr. 2009 à 16:21
par contre dans le popup ca n'indique pas la valeur quand je fais echo $_GET['...']

merci bcp tu es trop fort
0
Passarinho44 Messages postés 963 Date d'inscription mercredi 28 mai 2008 Statut Contributeur Dernière intervention 13 juin 2012 132
12 févr. 2009 à 16:27
Ben dans la popup tu affiche la valeur avec :
<?php
echo 'liste : ' . $_GET['liste'];
?>
0