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
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
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
Partager