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 :

Sommation d'une valeur d'un champs dans un formulaire avec la valeur d'un autre champs


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 20
    Points
    20
    Par défaut Sommation d'une valeur d'un champs dans un formulaire avec la valeur d'un autre champs
    J'ai 2 champs entier avec comme valeur des entiers $_POST['sub_cat'], $_POST['scoreAct'], le champs dont l'id est sub_cat est de type select et liée à une autre liste déroulante dans le formulaire (joursemaine) donc il est mis à jour dynamiquement dans le formulaire, et le champs scoreAct, sa valeur est lu directement de la base de donnée à partir d'une requete select, ce que je veux réaliser est que la valeur du champs scoreAct change automatiquement à chaque fois que le champs sub_cat est mis à jour, la nouvelle valeur du champs scoreAct doit être égale à la somme du de sa valeur actuel + la nouvelle valeur du champs sub_cat, j'ai entendu parler de la fonction onChange de JS et j'ai essayé avec mais ça n'a pas marché, à chaque fois que le champs sub_cat est mis à jour, le champs scoreAct ne change pas, j'ai ce code mais il ne fonctionne pas :
    le script updateOP1Bis.php qui contient le formulaire
    Code php : 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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php 
    	include('config.php'); 
    require 'database.php';
    	mysql_query("set NAMES utf8");
    $query_parent = mysql_query("SELECT * FROM joursemaine") or die("Query failed: ".mysql_error());
     
    	$id = null;
    	if ( !empty($_GET['id'])) {
    		$id = $_REQUEST['id'];
    	}
     
    	if ( null==$id ) {
    		header("Location: chaufAffect.php");
    	}
     
     
    ?>
     
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
     <link   href="css/bootstrap.min.css" rel="stylesheet">
        <script src="js/bootstrap.min.js"></script>
     
    <title>Dependent DropDown List</title>
    <script type="text/javascript" src="jsBis/jquery.js"></script>
    <script type="text/javascript">
    $(document).ready(function() {
     
    	$("#parent_cat").change(function() {
    		$(this).after('<div id="loader"><img src="img/loading.gif" alt="loading subcategory" /></div>');
    		$.get('loadsubcat.php?parent_cat=' + $(this).val(), function(data) {
    			$("#sub_cat").html(data);
    			$('#loader').slideUp(200, function() {
    				$(this).remove();
    			});
    		});	
        });
     
    });
    </script>
    </head>
     
    <body>
     
    <form name="forme" class="form-horizontal" action="updateOP1Bis.php?id=<?php echo $id?>" method="post">
     
     
     
    	  <div class="control-group">
    	<label for="category">joursemaine:</label>
        <select name="parent_cat" id="parent_cat" onchange="myFunction()">
            <?php while($row = mysql_fetch_array($query_parent)): ?>
     
            <option value="<?php echo $row['id_joursemaine']; ?>"><?php echo $row['joursemaine']; ?></option>
            <?php endwhile; ?>
        </select>
        <br/><br/>
      </div>
     
        <!--score-->
       <div class="control-group">  
    					 <label for="scoreAct" >scoreAct</label>
    					    <div >
    				<?php
    $pdo = Database::connect();
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "SELECT score FROM personnel WHERE id = {$id} ";
    $q = $pdo->prepare($sql);
    $q->execute();
    $data = $q->fetchAll(PDO::FETCH_ASSOC);
    Database::disconnect();
    ?>
    <!--<select  size=1 name="score" id="score">
    <option name="score" id="score" value="">--الرصيد الحالي --</option>-->
    <?php foreach($data as $value): ?>
    <input readonly  name="scoreAct" id="scoreAct"  type="text"   value="<?php echo $value['score'] ?>">
    <?php endforeach; ?>
    					    </div>
    	                     </div>
     
    					               <!--score-->
     
    	  <div class="control-group">  
        <label for="sub_cat">sub_cat</label>
        <select  id="sub_cat" onchange="changeTest()" name="sub_cat"></select>
    	</div>
     
     
     
     
     
    	<div class="form-actions">
    						  <button type="submit" class="btn btn-success">update</button>
    						  <a class="btn" href="chaufAffect.php">back</a>
    						</div>
     
     
    </form>
     
    <script>
    function changeTest (  ) { 
    var x = document.getElementById("sub_cat").value;
    var xBis = document.getElementById("scoreAct").value;
    forme.scoreAct.value = x + xBis; 
    alert(xS);
    }
    </script>
     
    </body>
    </html>

    le script loadsubcatBis responsable de la mise à jour du champs sub_cat

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
    include('config.php'); 
    //require 'database.php';
     
     $parent_cat = $_GET['parent_cat'];
     
    //$pdo = Database::connect();
    //$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $query = mysql_query("SELECT * FROM scorejour WHERE id_joursemaine = {$parent_cat}");
    while($row = mysql_fetch_array($query)) {
    	echo "<option value='$row[id_score]'>$row[score]</option>";
    	$sub_cat = $row['score'];
    }
    ?>
    est ce quelqu'un peut m'aider à résoudre le problème ou à trouver une autre solution plus efficace je suis prête merci d'avance

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    sauf erreur, myFunction() n'apparaît pas dans ton code;

    par ailleurs, la déclaration
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    forme.scoreAct.value = x + xBis;
    ne va sûrement pas donner grand chose; renseigne-toi sur les manières standard d'appeler un champ de formulaire;

  3. #3
    Membre à l'essai
    Femme Profil pro
    étudiante
    Inscrit en
    Mai 2014
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : étudiante

    Informations forums :
    Inscription : Mai 2014
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    ok j'ai fait autrement, j'ai créer un autre champs dans le formulaire appelé Newscore dont la valeur va être la somme des valeurs des champs sub_cat et scoreAct, voici le nouveau code mais qui ne marche pas aussi , j'éspère que vous pouvez m'aider parce que ça entre dans le cadre de mon projet de fin d'étude, merci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script>
    function changeTest (  ) { 
        var sc = document.getElementById("sub_cat");
        var sa = document.getElementById("scoreAct");
    	var sb = document.getElementById("nv_scor");
        sb.value = parseInt(sa.value) + parseInt(sc.value); 
        alert(sb.value);
    }
    </script>
    il me semble que la valeur du champs sub_cat n'a pas été récupéré parce que comme j'ai mentionné là dessus elle est lié à la liste déroulante joursemaine et elle est mise à jour à travers le script loadsubcat.php que j'ai posté son code là dessus, je ne sais pas si j'ai pensé correctement est ce quelqu'un peut m'aider

Discussions similaires

  1. Réponses: 2
    Dernier message: 18/06/2012, 10h28
  2. Réponses: 2
    Dernier message: 07/05/2012, 19h09
  3. [AC-2003] Atteindre un champ dans un formulaire avec un raccourci clavier
    Par mouhamadrouabha dans le forum IHM
    Réponses: 7
    Dernier message: 17/03/2012, 15h44
  4. Réponses: 3
    Dernier message: 09/02/2012, 22h24
  5. Réponses: 15
    Dernier message: 12/12/2006, 12h37

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