sanddy Posté 27 Octobre 2008 Posté 27 Octobre 2008 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.
Dan Posté 27 Octobre 2008 Posté 27 Octobre 2008 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
sanddy Posté 27 Octobre 2008 Auteur Posté 27 Octobre 2008 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...
Dan Posté 27 Octobre 2008 Posté 27 Octobre 2008 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.
sanddy Posté 27 Octobre 2008 Auteur Posté 27 Octobre 2008 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...
iNCiTE Web Posté 27 Octobre 2008 Posté 27 Octobre 2008 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...
sanddy Posté 27 Octobre 2008 Auteur Posté 27 Octobre 2008 (modifié) Si, GetId est une fonction javascript, la voici : function GetId(id) { return document.getElementById(id);} Modifié 27 Octobre 2008 par sanddy
iNCiTE Web Posté 27 Octobre 2008 Posté 27 Octobre 2008 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...
sanddy Posté 27 Octobre 2008 Auteur Posté 27 Octobre 2008 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.
iNCiTE Web Posté 27 Octobre 2008 Posté 27 Octobre 2008 Euh si le code est tel quel c'est normal 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 ?
sanddy Posté 27 Octobre 2008 Auteur Posté 27 Octobre 2008 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
iNCiTE Web Posté 27 Octobre 2008 Posté 27 Octobre 2008 OK. Cependant le <i id='test' c'est bof, un <span id='test' serait plus approprié...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant