Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/05/2011, 16h24   #1
Invité de passage
 
Inscription : mai 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 24
Points : 1
Points : 1
Par défaut $_POST avec bouton disabled avec JS

Bonjour,

Voici le problème j'ai donc un formulaire avec des boutons radios et une liste déroulante rien d'inhabituel. Quand je choisis certains champs de ma liste déroulante j'ai des boutons radio qui se séléctionnent automatiquement. (et j'utilise le du javascript comme dans l'exemple suivant :

Code :
1
2
document.forms.monFormulaire.monBoutonRadio[0].checked=true;
document.forms.monFormulaire.monBoutonRadio[0].disabled=true;
Hors le problème et que je ne peux récuperer ces valeurs dans ma page de récuperation des données car j'ai donc désactivé mon bouton et mon $_POST n'est pas donc pas "peuplé" avec les valeurs des bouton radio "disabled".

Dois-je changer le javascript en utilisant une autre propriété? Ai-je un moyen spécial avec php de récuperer les valeurs des boutons désactivés.

Merci d'avance AnusBonus.
ABonus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h33   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 018
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 018
Points : 45 108
Points : 45 108
utilise le readonly
disabled bloque la transmission
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h45   #3
Invité de passage
 
Inscription : mai 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 24
Points : 1
Points : 1
Oui mais readOnly n'empeche pas l'utilisateur de changer la valeur du champ si je ne m'abuse?
ABonus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h46   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 018
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 018
Points : 45 108
Points : 45 108
ben si

lecture seule ... explicite
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h53   #5
Invité de passage
 
Inscription : mai 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 24
Points : 1
Points : 1
Hmm je suis d'accord tu as testé? Parce que ça a l'air de fonctionné avec les TexteArea mais pas avec des boutons radios.
ABonus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h53   #6
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 803
Points : 35 803
Spaffy, à priori, il s'agit d'un bouton radio, donc readOnly n'est pas disponible
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 16h58   #7
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 018
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 018
Points : 45 108
Points : 45 108
ha oui j'avais zappé le type !

j'ai déja recontré ce cas de figure je l'avais resolu simplement avec un return false sur tous les radios de même name
encore plus simple avec jquery
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 17h04   #8
Invité de passage
 
Inscription : mai 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 24
Points : 1
Points : 1
un peu plus de précisions?
ABonus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/05/2011, 21h05   #9
Expert Confirmé
 
Avatar de sekaijin
 
Femme
Urbaniste
Inscription : juillet 2004
Messages : 1 421
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 48
Localisation : France, Yvelines (Île de France)

Informations professionnelles :
Activité : Urbaniste
Secteur : Santé

Informations forums :
Inscription : juillet 2004
Messages : 1 421
Points : 2 809
Points : 2 809
une solution
tu ne mets pas de name à tes boutons radios
ni même de value.
tu crée un input hidden pour chaque bouton radio
et à lui tu mets un name
tu ajoute un onchange à tes bouton radio qui place la valeur dans l'input associé en fonction de check
Code html :
1
2
3
<div><input type="hidden" name="myvar" value="false" >
<input disabled type="checkBox"
  onchange="this.parent.firstchild.value=this.checked;" /></div>
ainsi lorsque la checkbox change la valeur de l'hidden change aussi.

A+JYT
et le hidden est toujours transmis
sekaijin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/05/2011, 02h42   #10
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Bonsoir ABonus !
Si on parle bien de boutons radios et pas de checkbox, j'ai une solution très simple (testée sous FF3 et IE7+).
L'idée est de désactiver tous les boutons de même nom sauf celui qui a été sélectionné. Ceci empêche l'utilisateur de modifier le choix, mais permet d'envoyer quand même l'information au serveur.

Code JS :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function disableRadios( event ) {
	var target = event.target || event.srcElement;
 
	// détection de l'élément cliqué
	if ('INPUT' == target.tagName && 'radio' == target.type) {
		// itération sur tous les boutons du même nom
		var radios = document.getElementsByName(target.name);
		for (var radio, i = 0; radio = radios[i++];) {
			if (radio != target) {
				radio.disabled = true;
			}
		}
	}
}
 
// attache la fonction aux clics sur le formulaire entier
if (window.addEventListener) // standard
	window.addEventListener('load', function() {
		var monFormulaire = document.forms.monFormulaire;
		monFormulaire.addEventListener('click', disableRadios, false);
	}, false);
else // Microsoft
	window.attachEvent('onload', function() {
		var monFormulaire = document.forms.monFormulaire;
		monFormulaire.attachEvent('onclick', disableRadios);
	});
Comme tu peux le voir, c'est un gestionnaire d'évènement qui couvre le formulaire entier, ainsi il n'y a absolument pas de script à modifier quand tu modifies le HTML. Pratique pour la maintenance
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 11h32   #11
Invité de passage
 
Inscription : mai 2010
Messages : 24
Détails du profil
Informations forums :
Inscription : mai 2010
Messages : 24
Points : 1
Points : 1
Merci pour ta solution Watilin, elle fonctionne très bien.
Sinon pour ceux qui auraient un peu plus de mal ce que vous pouvez faire que j'avais fait c'est de simplement à l'envois du formulaire remettre les bouton en disabled=false pour permettre l'envois des données.

ABonus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 14h29   #12
Membre Expert
 
Avatar de Watilin
 
Homme Matilin Torre
Étudiant
Inscription : juin 2010
Messages : 679
Détails du profil
Informations personnelles :
Nom : Homme Matilin Torre
Âge : 23
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2010
Messages : 679
Points : 1 202
Points : 1 202
Je corrige juste un truc dans mon code, la ligne
Code :
event = event || window.event;
ne sert à rien
__________________
Disposition de clavier ergonomique française : Bépo
Watilin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h09.


 
 
 
 
Partenaires

Hébergement Web