Aller au contenu

N'afficher une phrase que si un champ de saisie est renseigné, comment svp ?


Sujets conseillés

Posté

Bonjour,

J'ai un champ de saisie qui me permet d'afficher des frais d'actes puis une phrase me calculant le prix actes en main.

J'aimerais afficher "Prix actes en main" que si ce dernier champ de saisie est différent de 0, comment faire svp ???

Actuellement, j'ai :

echo "<b>Frais d'actes :</b><br /><input".$readonly." type=\"text\" size=\"12\" name=\"fraisactes\" id=\"fraisactes\" value=\"".$bien["fraisactes"]."\" onkeyup=\"GetId('prixactes').innerHTML=parseFloat(this.value) + parseFloat(GetId('prixvente').value);\" /> €\n";

echo "<i>Prix actes en main : <span id=\"prixactes\">".($bien["prixnet"] + $bien["emoluments"] + $bien["fraisactes"])."</span> €</i>";

et dès qu'on change les frais d'actes, cela calcule le prix net + emolument + frais d'actes et change le total de la phrase.

Donc comment faire pour ne pas afficher cette phrase si le champ de saisie "Frais d'actes" reste à 0.00 ?

Merci d'avance.

Posté

Bonjour,

Tout simplement en faisant précéder ton "echo" par :

if($bien["fraisactes"] > 0) {
echo...
}

Dan

PS: vu que le "if" sera vrai automatiquement si l'expression est non nulle, la ligne

if($bien["fraisactes"])

suffit

Posté

Merci Dan ;)

Mais malheureusement, ça ne marche pas car je veux que cela affiche "Prix actes en main" si le champ de saisie est modifié (différent de zéro) sans automatiquement valider le formulaire. Il faut que cela l'affiche au keyUp.

Et donc, si je mets

if($bien["fraisactes"] > 0) {
echo...
}

vu que $bien["fraisactes"] n'a pas changé dans la base de données (car on n'a pas cliqué sur "valider le formulaire"), cela n'affiche pas du tout "Prix actes en main". Cela ne l'affichera que si je valide le formulaire, or, je veux que ce soit au keyUp. Pas facile de se faire comprendre... :smartass:

Posté

Compris !

Vu que cette valeur est modifiée par JavaScript, il te faudra donc une fonction JavaScript qui n'affiche cette ligne que si la somme GetId('prixactes').innerHTML=parseFloat(this.value) + parseFloat(GetId('prixvente').value) est supérieure à zéro.

Et le JavaScript et moi, ça fait deux :!:

Il se trouvera bien quelqu'un de compétent pour te donner la solution. :)

Posté

LOL, merci ;)

Je suis dans le même cas... en javascript, hum, pas du tout mon domaine... donc s'il y a une aimable personne sur ce forum qui pourrait m'aider en javascript, ça me serait vraiment utile...

Merci d'avance...

Posté

Si j'ai bien compris (car je ne sais pas si tu parles des montants et/ou des libellés) :

onkeyup=\"GetId('prixactes').innerHTML = calcul(this.value);\"

Et rajouter la fonction :

function calcul(montant) {
var total = parseFloat(montant) + parseFloat(GetId('prixvente').value);
if ( total > 0 )
return total
}

Je précise que GetId n'est pas une fonction Javascript, elle a du être déclaré quelque part...

Posté (modifié)

Si, GetId est une fonction javascript, la voici :

function GetId(id) {
return document.getElementById(id);
}

Modifié par sanddy
Posté

Ce que je veux dire c'est que la fonction n'existe pas à la base, elle est déclarée dans le code à un moment.

Ce qui veut dire que tu ne peux pas faire GetId() comme ça dans un script de base...

Posté

Du coup, j'ai fait :

<script language="Javascript" type="text/javascript">
function calcul(montant) {
var total = parseFloat(GetId('prixactes').value) + parseFloat(GetId('prixvente').value);
if (total > 0)
return total
}
</script>
echo "<b>Frais d'actes :</b><br /><input".$readonly." type=\"text\" size=\"12\" name=\"fraisactes\" id=\"fraisactes\" value=\"".$bien["fraisactes"]."\" onkeyup=\"calcul(montant)\" /> €\n";

echo ": <span id=\"prixactes\">".($bien["prixnet"] + $bien["emoluments"] + $bien["fraisactes"])."</span> €</i>";

Le total marche mais lorsqu'on saisit un montant dans fraisactes, ça ne fonctionne pas. Je dois avoir quelques fautes dans mon code vers le onkeyup :?:

Merci d'avance.

Posté

Euh si le code est tel quel c'est normal :P

Tu as mélangé le Javascript et le PHP, il faut un <? avant de commencer les ECHO

Ensuite tu as mis onkeyup=\"calcul(montant)\" mais montant n'est pas défini, il faut le retirer, de même que dans la déclaration de la fonction.

Tu as une page de test en ligne ?

Posté

J'ai reussi ;)

Merci à vous.

J'ai fait :

<i id='test' style="display:none">Prix actes en main : <span id="prixactes">707879</span> €</i>

et un :

onkeyup="if(parseFloat(this.value) > 0){GetId('test').style.display='block';GetId('prixactes').innerHTML=parseFloat(this.value) + parseFloat(GetId('prixvente').value);}else{GetId('test').style.display='none';}"

sur ma méthode :):thumbsup:

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...