[jQuery] Récupérer checkbox dans une fonction
Résolu/Fermé
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
-
30 oct. 2009 à 18:31
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 25 janv. 2011 à 16:45
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 25 janv. 2011 à 16:45
A voir également:
- [jQuery] Récupérer checkbox dans une fonction
- Fonction si et - Guide
- Recuperer message whatsapp supprimé - Guide
- Recuperer video youtube - Guide
- Comment récupérer un compte facebook piraté - Guide
- Impossible de récupérer mon compte gmail - Guide
20 réponses
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 18:54
30 oct. 2009 à 18:54
Mon formulaire est à la base en php, mais j'ai bien précisé que je l'avais retranscrit en html (pour que ce soit plus lisible).
Ah je ne savais pas ça. Mais à la base pour les name j'avais un tableau id_salle[].
Je met mon formulaire en php cette fois si avec les name=id_salle[]
Je précise aussi que ce formulaire fonctionnait parfaitement quand je récuperais mes checkbox en php avec un foreach().
merci d'avance
En plus, tu confonds aussi les checkbox avec les radio ! Ton script peut mal de fonctionner puisque tu ne peux pas avoir plusieurs checkbox avec le même name.
Ah je ne savais pas ça. Mais à la base pour les name j'avais un tableau id_salle[].
Je met mon formulaire en php cette fois si avec les name=id_salle[]
$echo .= "<form id='form_affectation' onsubmit='affecter($id_logiciel); vider_div(\"tableau_logiciels_salles\"); return false;'>"; while ($res=mysql_fetch_array($result)) { $echo .= "<input type=checkbox name='salle_id[]' value=".$res['idSalle']." />".$res['numSalle']." (".$res['nomSite'].")<br>"; } $echo .= <input type='submit' value='Afficher'>"; $echo .= "</form>";
Je précise aussi que ce formulaire fonctionnait parfaitement quand je récuperais mes checkbox en php avec un foreach().
merci d'avance
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
31 oct. 2009 à 00:10
31 oct. 2009 à 00:10
Cool ça marche.
j'ai fais ça :
Ce qui revient au même que ce que tu as fais (encore merci :D )
Me reste plus qu'a trouver comment passer toutes mes variables avec $post (je l'avais oublié ça) mais le plus gros en fait !
j'ai fais ça :
function affecter(id_logiciel, nbrCheckbox) { var nbrCheckbox = nbrCheckbox; for(i=1 ; i <= nbrCheckbox ; i++) { var currentCheckbox = document.getElementById("salle_" + i); if(currentCheckbox.checked) { alert(currentCheckbox.name + " est coché"); } } return false; }
Ce qui revient au même que ce que tu as fais (encore merci :D )
Me reste plus qu'a trouver comment passer toutes mes variables avec $post (je l'avais oublié ça) mais le plus gros en fait !
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 18:41
30 oct. 2009 à 18:41
J'ai un formulaire en php.
Apprenez à utiliser des termes correctes ! Ton formulaire est en (x)HTML !
En plus, tu confonds aussi les checkbox avec les radio !
Ton script peut mal de fonctionner puisque tu ne peux pas avoir plusieurs checkbox avec le même name.
Apprenez à utiliser des termes correctes ! Ton formulaire est en (x)HTML !
En plus, tu confonds aussi les checkbox avec les radio !
Ton script peut mal de fonctionner puisque tu ne peux pas avoir plusieurs checkbox avec le même name.
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
5 oct. 2010 à 18:42
5 oct. 2010 à 18:42
« C'est bien de faire des remarques, mais si c'est pour dire des énnormités »
Ça tombe bien, cette phrase peut t'être retournée.
Tu me diras l'intérêt d'avoir plusieurs checkbox avec le même name : si au moins une est cochée, alors l'entrée 'name' existera dans $_POST.
Ça tombe bien, cette phrase peut t'être retournée.
Tu me diras l'intérêt d'avoir plusieurs checkbox avec le même name : si au moins une est cochée, alors l'entrée 'name' existera dans $_POST.
L'intérêt des "checkbox", comparés au "radio", c'est justement de pouvoir avoir plusieurs éléments de même name dans $_POST['name'].
$_POST['name'] sera alors un tableau de valeur. Ce qui peut être TRÈS utile pour sélectionner des messages à supprimer par exemple...
Personnellement, je ne vois pas l'intéret d'utiliser des checkbox si c'est pour ne pas récupérer plusieurs valeurs... si tu veux seulement une seule valeur, il y a les radio.
$_POST['name'] sera alors un tableau de valeur. Ce qui peut être TRÈS utile pour sélectionner des messages à supprimer par exemple...
Personnellement, je ne vois pas l'intéret d'utiliser des checkbox si c'est pour ne pas récupérer plusieurs valeurs... si tu veux seulement une seule valeur, il y a les radio.
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
25 janv. 2011 à 16:45
25 janv. 2011 à 16:45
Alors on ajoute des crochets à la fin du name.
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 19:03
30 oct. 2009 à 19:03
Mon formulaire est à la base en php
Non ! Tu écris son code source XHTML avec des echo en PHP, ce qui revient à du simple (x)HTML pour le navigateur
Par contre, je ne vois pas trop bien ce que tu veux faire.
Autre info : si tu veux vérifier si un checkbox est coché, utilise ".checked" qui renverra true si c'est le cas.
Non ! Tu écris son code source XHTML avec des echo en PHP, ce qui revient à du simple (x)HTML pour le navigateur
Par contre, je ne vois pas trop bien ce que tu veux faire.
Autre info : si tu veux vérifier si un checkbox est coché, utilise ".checked" qui renverra true si c'est le cas.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 19:17
30 oct. 2009 à 19:17
Non ! Tu écris son code source XHTML avec des echo en PHP, ce qui revient à du simple (x)HTML pour le navigateur
Ah excuse moi alors...
Ce que je veux faire c'est récupérer les valeurs des chexbox cochés (pas les autres) dans une fonction pour pouvoir les passés avec la méthode $post dans un autre document php. Puis les récupérer sous forme de tableau (en php).
Un .checked ne me permet pas de récupérer la valeur :x
Ah excuse moi alors...
Ce que je veux faire c'est récupérer les valeurs des chexbox cochés (pas les autres) dans une fonction pour pouvoir les passés avec la méthode $post dans un autre document php. Puis les récupérer sous forme de tableau (en php).
Un .checked ne me permet pas de récupérer la valeur :x
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 19:24
30 oct. 2009 à 19:24
Ah excuse moi alors...
Pas besoin de t'excuser, mais j'espère que tu as compris que dans ce genre de problème, savoir que tu utilises du PHP ne sert à rien du tout car le problème est côté client.
Essaye avec ça :
Pas besoin de t'excuser, mais j'espère que tu as compris que dans ce genre de problème, savoir que tu utilises du PHP ne sert à rien du tout car le problème est côté client.
Essaye avec ça :
function affecter(id_logiciel)
{
var salle = new Array();
salle .= $("#form_affectation").find("input[name=salle_id]").val();
alert(salle.length);
$.post("jQuery/affecter.php", { salle: salle },
function success(data){
$('#tableau_affectation').html(salle);
});
}
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 19:51
30 oct. 2009 à 19:51
Marche pas. D'après Firebug c'est le point devant le égale qui ne va pas.
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 19:53
30 oct. 2009 à 19:53
Essaye avec ça :
salle[] += $("#form_affectation").find("input[name=salle_id]").val();
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 20:02
30 oct. 2009 à 20:02
J'avais déjà essayé avec des crochets mais pas le point et ça ne marchait pas. Apparemment là non plus :x
Question surement très idiote mais est il possible en JavaScript de mettre des variables pour les nom de variables ?
Question surement très idiote mais est il possible en JavaScript de mettre des variables pour les nom de variables ?
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 20:24
30 oct. 2009 à 20:24
Question surement très idiote mais est il possible en JavaScript de mettre des variables pour les nom de variables ?
Je suppose que oui, mais je ne sais pas comment (essaye comme en PHP).
Je te propose une autre méthode :
Mets un id différent pour chaque checkbox, et à chaque fois que tu en insères une, tu insères aussi un script JS qui ajoutera l'ID dans un array. Ainsi, il te suffira de parcourir l'array pour avoir tous les ID et pouvoir récupérer les valeurs.
Je suppose que oui, mais je ne sais pas comment (essaye comme en PHP).
Je te propose une autre méthode :
Mets un id différent pour chaque checkbox, et à chaque fois que tu en insères une, tu insères aussi un script JS qui ajoutera l'ID dans un array. Ainsi, il te suffira de parcourir l'array pour avoir tous les ID et pouvoir récupérer les valeurs.
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 21:23
30 oct. 2009 à 21:23
J'ai pas très bien compris...
Tu veux que je fasse un truc comme ça?
Mais le problème c'est qu'a chaque fois le tableau se réinitialise.
En plus il y aura toutes les checkbox, or certaines peuvent ne pas etre coché par l'utilisateur.
Et je serait quand meme obligé de passer le tableau en paramètre pour ma fonction affecter
Non?
Tu veux que je fasse un truc comme ça?
$echo .= "<form id='form_affectation' onsubmit='affecter($id_logiciel); vider_div(\"tableau_logiciels_salles\"); return false;'>"; while ($res=mysql_fetch_array($result)) { function ajouter($res['numSalle']); $echo .= "<input type=checkbox name=".$res['numSalle']" value=".$res['idSalle']." />".$res['numSalle']." (".$res['nomSite'].")<br>"; } $echo .= <input type='submit' value='Afficher'>"; $echo .= "</form>";
fonction ajouter(numSalle) { var tableau = new Array('numSalle'); tableau = tableau.push(numSalle); }
Mais le problème c'est qu'a chaque fois le tableau se réinitialise.
En plus il y aura toutes les checkbox, or certaines peuvent ne pas etre coché par l'utilisateur.
Et je serait quand meme obligé de passer le tableau en paramètre pour ma fonction affecter
Non?
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 21:27
30 oct. 2009 à 21:27
Mais le problème c'est qu'a chaque fois le tableau se réinitialise
Voilà ton script :
Voilà ton script :
fonction ajouter(numSalle)
{
var tableau = new Array('numSalle');
tableau = tableau.push(numSalle);
}
C'est assez voyant ?
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 21:34
30 oct. 2009 à 21:34
Bah oui mais je ne vois pas comment faire autrement.
Il faut bien l'initialiser au départ et on ne peut le faire que dans la fonction...
Je ne vois vraiment pas comment faire et pourtant c'est banale comme truc. Je ne trouve rien sur internet ! N'y a t'il personne qui fait ça?
Il faut bien l'initialiser au départ et on ne peut le faire que dans la fonction...
Je ne vois vraiment pas comment faire et pourtant c'est banale comme truc. Je ne trouve rien sur internet ! N'y a t'il personne qui fait ça?
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 22:24
30 oct. 2009 à 22:24
De toutes façon, tu appeles la fonction JS depuis le PHP, c'est impossible !
Ensuite, tu ne peux pas transmettre un array depuis POST ni par GET
Ensuite, tu ne peux pas transmettre un array depuis POST ni par GET
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 22:40
30 oct. 2009 à 22:40
De toutes façon, tu appeles la fonction JS depuis le PHP, c'est impossible !
Je suis d'accord avec toi.
Ensuite, tu ne peux pas transmettre un array depuis POST ni par GET
Bon bah je n'ai plus qu'a trouver une autre solution..
Merci quand même ++
Je suis d'accord avec toi.
Ensuite, tu ne peux pas transmettre un array depuis POST ni par GET
Bon bah je n'ai plus qu'a trouver une autre solution..
Merci quand même ++
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 23:13
30 oct. 2009 à 23:13
Mouhahahaha !
Je t'ai trouvé une alternative.
Voici la démo :)
Je t'ai trouvé une alternative.
Voici la démo :)
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
30 oct. 2009 à 23:24
30 oct. 2009 à 23:24
Ahhh merci avion-f16 !! Je commençais à désespérer sérieusement :x
Je n'ai plus qu'a remplacer "var nbCheckbox = 5;" par "var nbCheckbox = $nbrCheckbox" et ça va fonctionner!
Je n'ai plus qu'a remplacer "var nbCheckbox = 5;" par "var nbCheckbox = $nbrCheckbox" et ça va fonctionner!
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
30 oct. 2009 à 23:38
30 oct. 2009 à 23:38
N'oublie pas de générer l'id.
Pour le nombre, il suffit de faire <?php echo $nbrCheckbox; ?>
Pour le nombre, il suffit de faire <?php echo $nbrCheckbox; ?>
avion-f16
Messages postés
19250
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
22 décembre 2024
4 505
31 oct. 2009 à 13:08
31 oct. 2009 à 13:08
Il suffit de généré la chaine "var=value&var2=value".
Je te fais un exemple, toujours à la même adresse
Je te fais un exemple, toujours à la même adresse
Vodkadaaa
Messages postés
13
Date d'inscription
vendredi 30 octobre 2009
Statut
Membre
Dernière intervention
8 novembre 2009
14
31 oct. 2009 à 16:08
31 oct. 2009 à 16:08
Oh encore merci !
Pour toi c'est facile mais moi je débute jsute en javaScript et Ajax donc je n'ai pas encore le mécanisme du langage :x . J'espère que ça viendra vite
Pour toi c'est facile mais moi je débute jsute en javaScript et Ajax donc je n'ai pas encore le mécanisme du langage :x . J'espère que ça viendra vite