IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[PHP-JS] Calculs dans une page php à l'aide javascript


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [PHP-JS] Calculs dans une page php à l'aide javascript
    Après maintes recherches sur les forums, je n'ai pas trouvé de solution à mon problème:

    A partir d'une base dans un formulaire php, il m'est possible d'afficher à l'aide d'une région répétée une série d'enregistrements dont 4 champs sont des valeurs numériques.

    J'essaie d'établir un script javascript afin d'effectuer des calculs sur ces variables: par exemple sommes, ou opérations (multiplications, etc...) à partir des valeurs de ces champs.

    Les valeurs rapatriées du type <?php echo $row_majsoirsenf['retard']; ?>
    ayant déja servi pour l'affichage des résultats de la table , peuvent-elles servir en même temps pour les calculs dans le script.


    La base étant plus importante que les valeurs affichées (tri effectué en fonction de quelques critères) et la région répétée étant la méthode utilisée pour l'affichage en tableau, faut-il utiliser une séquence for..... pour aller prendre les différentes valeurs des champs de la base? et effectuer ensuite les calculs.

    Faut-il convertir et comment les valeurs du type <?php echo $row_majsoirsenf['retard']; ?> qui ne sont pas numériques?

    Existe-t-il des scripts qui répondraient à toutes ces questions?

    Merci

  2. #2
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    salut !
    le principe est de déclarer tes variables JS en les initialisant à l'aide du générateur php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php echo "var variableJS = ".$variablePHP; ?>
    ensuite tu pourras les utiliser comme tu le souhaite...
    @+, en espérant avoir compris ton pb.
    Que votre situation soit bonne ou mauvaise, cela va changer...

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut calculs dans une page php à l'aide de javascript
    Salut

    Voici en fait le code php qui me permet d'afficher les éléments choisis de la base:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     <?php do { ?>
          <tr class="Style3">
            <td><input name="textfield2" type="text" value="<?php echo $row_majsoirsenf['numero']; ?>" size="6" /></td>
            <td><input name="textfield" type="text" value="<?php echo $row_majsoirsenf['mois']; ?>" size="15" /></td>
            <td height="39"><input name="nomenfant" type="text" id="nomenfant" value="<?php echo $row_majsoirsenf['nomenfant']; ?>" size="25" /></td>
            <td><input name="prenomenfant" type="text" id="prenomenfant" value="<?php echo $row_majsoirsenf['prenomenfant']; ?>" size="25" /></td>
            <td><input name="heuresprevues" type="text" id="heuresprevues" value="<?php echo $row_majsoirsenf['heuresprevues']; ?>" size="7" /></td>
            <td><input name="heuresreelles" type="text" id="heuresreelles" value="<?php echo $row_majsoirsenf['heuresreelles']; ?>" size="7" /></td>
            <td><input name="montant" type="text" id="montant" value="<?php echo $row_majsoirsenf['montant']; ?>" size="12" /></td>
            <td><input name="retard" type="text" id="retard" value="<?php echo $row_majsoirsenf['retard']; ?>" size="12" /></td>
          </tr>
          <?php } while ($row_majsoirsenf = mysql_fetch_assoc($majsoirsenf)); ?>
    </table>
    j'ai ajouté le code suivant à l'aide de ton aide, mais rien ne s'affiche:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     <script language="javascript">
                    var b= <?php echo $totalRows_majsoirsenf ?>
                    for (a;a<=b;a++)
                    {
     
                    <?php echo "var montnantJS = ".$row_majsoirsenf['montant']; ?>
                    <?php echo "var retardJS = ".$row_majsoirsenf['retard']; ?>
                    document.write('a');
                    document.write('montantJS');
                    document.write('retardJS');
                    }
                </script>
    Je ne sais pas si la ligne de déclaration de la variable b est correcte.
    J'ai choisi une boucle for dans l'optique de récupérer les différentes valeurs de la base pour chaque variable, mais je ne sais pas non plus si c'est la procédure....

  4. #4
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Dommage, on ne se rend pas bien compte de l'effet de la coloration syntaxique du forum ...

    treve de plaisanterie : les balises [CODE] seraient bienvenues.

  5. #5
    Membre éclairé Avatar de Sheriff
    Inscrit en
    Octobre 2004
    Messages
    608
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 608
    Points : 718
    Points
    718
    Par défaut
    salut !
    de cette façon tu auras plus de chances de trouver de l'aide...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    27
    28
    29
    <?php do { ?>
    <tr class="Style3">
    <td><input name="textfield2" type="text" value="<?php echo $row_majsoirsenf['numero']; ?>" size="6" /></td>
    <td><input name="textfield" type="text" value="<?php echo $row_majsoirsenf['mois']; ?>" size="15" /></td>
    <td height="39"><input name="nomenfant" type="text" id="nomenfant" value="<?php echo $row_majsoirsenf['nomenfant']; ?>" size="25" /></td>
    <td><input name="prenomenfant" type="text" id="prenomenfant" value="<?php echo $row_majsoirsenf['prenomenfant']; ?>" size="25" /></td>
    <td><input name="heuresprevues" type="text" id="heuresprevues" value="<?php echo $row_majsoirsenf['heuresprevues']; ?>" size="7" /></td>
    <td><input name="heuresreelles" type="text" id="heuresreelles" value="<?php echo $row_majsoirsenf['heuresreelles']; ?>" size="7" /></td>
    <td><input name="montant" type="text" id="montant" value="<?php echo $row_majsoirsenf['montant']; ?>" size="12" /></td>
    <td><input name="retard" type="text" id="retard" value="<?php echo $row_majsoirsenf['retard']; ?>" size="12" /></td>
    </tr>
    <?php } while ($row_majsoirsenf = mysql_fetch_assoc($majsoirsenf)); ?>
    </table>
     
     
    j'ai ajouté le code suivant à l'aide de ton aide, mais rien ne s'affiche:
     
    <script language="javascript">
    var b= <?php echo $totalRows_majsoirsenf ?>
    for (a;a<=b;a++)
    {
     
    <?php echo "var montnantJS = ".$row_majsoirsenf['montant']; ?>
    <?php echo "var retardJS = ".$row_majsoirsenf['retard']; ?>
    document.write('a');
    document.write('montantJS');
    document.write('retardJS');
    }
    </script>
    @+
    Que votre situation soit bonne ou mauvaise, cela va changer...

  6. #6
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php echo "var montnantJS = ".$row_majsoirsenf['montant']; ?>
    document.write('montantJS');
    c'est une erreur de copier/coller ?
    sinon , tu ne peux pas afficher montantJS si tu déclares montnantJS

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Calculs dans une page php à l'aide javascript
    problème résolu:

    pas de passage par déclaration de variable JS:
    mais inclusion de plusieurs script JS à l'intérieur des boucles php et à l'extérieur:

    pour le calcul:
    initialisation des variables: en dehors de la zone répétée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     <script language="JavaScript">
         var x=0
         var h=0
         var j=0
         var r=0
         </script>
    puis calcul à l'intérieur de cette zone répétée :
    copie de la zone et du script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     <?php do { ?>
          <tr class="Style3">
            <td><input name="textfield2" type="text" value="<?php echo $row_majsoirsenf['numero']; ?>" size="6" /></td>
            <td><input name="textfield" type="text" class="Style17" value="<?php echo $row_majsoirsenf['mois']; ?>" size="10" /></td>
            <td height="39"><input name="nomenfant" type="text" class="Style17" id="nomenfant" value="<?php echo $row_majsoirsenf['nomenfant']; ?>" size="25" /></td>
            <td><input name="prenomenfant" type="text" class="Style17" id="prenomenfant" value="<?php echo $row_majsoirsenf['prenomenfant']; ?>" size="25" /></td>
            <td><input name="heuresprevues" type="text" id="heuresprevues" value="<?php echo $row_majsoirsenf['heuresprevues']; ?>" size="7" /></td>
            <td><input name="heuresreelles" type="text" id="heuresreelles" value="<?php echo $row_majsoirsenf['heuresreelles']; ?>" size="7" /></td>
            <td><input name="montant" type="text" id="montant" value="<?php echo $row_majsoirsenf['montant']; ?>" size="12" /></td>
            <td><input name="retard" type="text" id="retard" value="<?php echo $row_majsoirsenf['retard']; ?>" size="12" /></td>
          </tr>
          <script language="JavaScript">
     
         var mont="<?php echo $row_majsoirsenf['montant']; ?>"
                x=parseFloat(x)+parseFloat(mont)
         var heur="<?php echo $row_majsoirsenf['heuresprevues']; ?>"
                 h=parseFloat(h)+parseFloat(heur)
        var hor="<?php echo $row_majsoirsenf['heuresreelles']; ?>"
            j=parseFloat(j)+parseFloat(hor)
        var reta="<?php echo $row_majsoirsenf['retard']; ?>"
            r=parseFloat(r)+parseFloat(reta)
     
          </script>
     
          <?php } while ($row_majsoirsenf = mysql_fetch_assoc($majsoirsenf)); ?>
    et ensuite en dehors de la zone répétée un autre script pour l'affichage des résultats:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     <script language="JavaScript">
      document.write("............................................Totaux ........"+h+".........");
        document.write(".."+j+"........");
      document.write(".."+x+"€"+"........");
      document.write(".."+r+"€"+"<br>");
     
          </script>

    et le tour est joué, récupération des variables de la base:4 variables avec de critères de sélection afin de ne prendre que les enregistrements choisis de la base.

  8. #8
    Membre éprouvé Avatar de Jérémy Lefevre
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Luxembourg

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

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Points : 969
    Points
    969
    Par défaut
    une alternative serait ajax
    Rien ne se perd, rien ne se crée, tout se transforme

    ------- -------

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP-JS] Rechercher dans une page
    Par eric41 dans le forum Langage
    Réponses: 7
    Dernier message: 08/05/2006, 10h05
  2. afficher une page PHP dans une page PHP ?
    Par sirbaldur dans le forum Langage
    Réponses: 4
    Dernier message: 05/05/2006, 19h42
  3. [Configuration] Inclure un fichier .c dans une page PHP
    Par Korma dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 5
    Dernier message: 18/01/2006, 12h49
  4. Réponses: 11
    Dernier message: 11/03/2005, 17h41
  5. problème debodybackground dans une page php
    Par bertrand_declerck dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/02/2005, 22h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo