Desactiver un bouton disabled="disabled"

Eléphant du PHP | 62 Messages

23 juil. 2007, 14:47

Bonjour,

Voila je sais comment désactiver un bouton, mais ce que je ne sais pas c’est comment le re-ouvrir avec une condition php.

desactiver disabled="disabled"

Code : Tout sélectionner

<input type="button" id="Vider" value="Vider" disabled="disabled" /></td>

Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 juil. 2007, 14:57

En php, il suffit de ne pas mettre l'attribut ;)
<?php 
if ($disabled) 
  echo '<input type="button" id="Vider" value="Vider" disabled="disabled" />';
else
  echo '<input type="button" id="Vider" value="Vider" />';
?>
En javascript :
<script type="text/javascript">
  document.getElementById('Vider').disabled = false; // true pour l'activer
</script>
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 62 Messages

23 juil. 2007, 16:17

Bonjour,

Au démarrage de ma page j’essaye de vérifier si le champ text1 et vide alors le bouton devient disabled sinon le bouton est enabled mais il reste toujours en disabled.

Voila ce que j’ai fait

Code : Tout sélectionner

<input type="button" id="Bouton_article" value="Ajouer" disabled="'.$status.'" /> <input type=text size=7 name="text1" value="11" ></td> <?PHP if ($text1 != "") { $status = "enabled" ; } else { $status = "disabled" ;} ?>
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 juil. 2007, 16:31

Si tu définies le satut de ton bouton après l'avoir utilisé, il est sur que le résultat ne risque pas de changer :)

Par ailleurs petit rappel : PHP s'exécute sur le serveur, donc avant toute intervention de l'utilisateur. Si tu veux qu'il y ait une interraction avec l'utilisateur, c'est du javascript - qui s'exécute sur le navigateur, donc côté client - qu'il te faut :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 928 Messages

23 juil. 2007, 16:31

Il y a un gros problème de logique dans ton script. Tu utilise une variable que tu créés après.

Tu dois créer la variable avant de l'utiliser.
<?PHP
if ($text1 != "") { $status = "enabled" ; } else { $status = "disabled" ;}
?>

<input type="button" id="Bouton_article" value="Ajouer" disabled="'.$status.'" />
<input type=text  size=7 name="text1" value="11" ></td>

Eléphant du PHP | 62 Messages

23 juil. 2007, 17:47

Bonjour,

Voila j’ai résolu le problème, mais ça ne fonctionne que sur Firefox sur Internet explorer j’ai une erreur

Code : Tout sélectionner

Ligne : 14 Car : 1 Erreur : Cet objet ne gere pas cette propriete ou cette methode Code : 0

Code : Tout sélectionner

<form name="searchpeople" action="..." method="post"> <input type="text" size="10" name="cp1a" value="" onkeyup="greyfield(document.searchpeople);"> <input type="text" size="10" name="cp1b" value="" disabled="disabled"> </form> <script type="text/javascript"> function greyfield(formulaire) { if (formulaire.cp1a = '') formulaire.cp1b.disabled = true; else formulaire.cp1b.disabled = false; } </script>
Merci

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 juil. 2007, 18:16

Si tu veux récupérer la valeur d'un champ il faut utiliser l'attribut .value
Par ailleurs, l'opérateur de comparaison est "==" et pas "=" ;)
// au lieu de
if (formulaire.cp1a = '') 
//essayes :
if (formulaire.cp1a.value == '') 
A noter qu'en javascript, tu peux également utiliser l'objet "this" relatif à l'objet courrant. Tu aurais ainsi dans ton formaulaire
onkeyup="greyfield(this);"  // pour passer l'objet au lieu du formulaire ou this.value pour passer directement la valeur à ta fonction
Ta fonction serait alors
function greyfield(champ) { 
if (champ.value == '') 
  ...
} 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 62 Messages

23 juil. 2007, 19:05

Bonjour,

Ca fonctionne très merci a vous

Merci encore