Disabled sur formulaire entier

Eléphanteau du PHP | 26 Messages

13 mars 2007, 11:10

Bonjour Bonjour =)

Je viens profiter un peu de vos conseil. J'ai un petit soucis de disabled que je n'arrive pas à résoudre.
Le principe de mon formulaire est simple, tout mes champs sont grisé (seulement en consultation en gros), et au clic que le bouton "Modifier les champs" le disabled est sur false et mon formulaire devient modifiable(dis comme ça ça parait simple)

J'ai essayé plusieurs choses et j'aimerais que vous me corrigiez car je n'arrive pas a trouver mon erreur :

la première :
mon bouton
<input type="submit" value="Modifier les Infos?" name="valider" onClick="document.mon_formulaire.disabled=false;" >
Les champs du formulaire sont sur disabled sur default. Cela n'a evidemment pas fonctionner, donc j'ai tenté juste avec un seul champs
onClick="document.mon_formulaire.ville.disabled=false;" 
Mon champs se dégrise et aussitôt se regrise, je ne comprend pas, c'est mon disabled dans mon input qui se remet dessus?

la seconde : je me suis dis puisque la première ne marchait pas j'allais tester ça avec une variable
Mon bouton
<input type="submit" value="Modifier les Infos?" name="valider" onClick="<? $var=false; ?>">
(ma var est sur true à l'initialisation)

et sur mes input :
echo "<input type='text' name='prenom'  disabled=$var   value='";
echo etatChamps($row['PRENOM_IDENTITE'])."'>";

Mammouth du PHP | 1353 Messages

13 mars 2007, 12:46

Bonjour,

Alors pour la seconde solution que tu as essayé cela n'est pas possible sauf si tu rafraichis la page en passant par exemple ta variable dans l'url. En effet le fait de changer une variable apres que la page ait été chargée ne pourra pas modifier les champs, le php s'éxécute coté serveur et non pas coté client donc si tu ne rafraichi pas la page les modifications sont vaines.

En revanche la premiere solution, le javascript, devrait fonctionner.
Il faut que tu utilises un bouton de type button et non pas submit, car sinon tes champs sont activés mais apres le formulaire est validé donc la page se charge a nouveau.

Normalement, un code de ce type fonctionne :
<head>
<script type="text/javascript" language="javascript">
function enable() {
document.formulaire.text_field.disabled = false;
}

</script>
</head>

<body>
<form name="formulaire">
<input type="text" name="text_field" value="blabla" disabled='disabled' />
<input type="submit" value="modifier" onClick="enable()"/>
</form>
</body>

EDIT:

Pour faire que ton code soit adaptable pour une série de champs tu peux aussi modifier la fonction... Si tu mets des id pour chaque champs et que tu crées un tableau avec le nom de tes champs tu peux avoir une boucle qui pour chaque champ applique document.getElementById(''+tableau).disabled = false; par exemple...
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 26 Messages

13 mars 2007, 14:45

Pfiou, merci pour tous ses éclaircissement guilt92 ^^

Je te corrige sur ce point juste, avec ce que tu as dis plus haut ton second input est de type button :p
<head>
<script type="text/javascript" language="javascript">
function enable() {
document.formulaire.text_field.disabled = false;
}

</script>
</head>

<body>
<form name="formulaire">
<input type="text" name="text_field" value="blabla" disabled='disabled' />
<input type="button" value="modifier" onClick="enable()"/>
</form>
</body>

Mammouth du PHP | 1353 Messages

13 mars 2007, 15:11

Je te corrige sur ce point juste, avec ce que tu as dis plus haut ton second input est de type button :p
:oops: désolé j'avais testé avec un submit pour être sûr que ca marchait pas et j'ai pas rechangé le code avant le copier-coller :(
Bonne continuation !
Tell me and I forget. Teach me and I remember. Involve me and I learn.