Je fais un système de vote avec jQuery AJAX. Lorsque vous cliquez sur un div
(lors du vote), les données sont envoyées à un fichier intermédiaire (dans ce cas, up_vote.php
), puis le div est mis à jour avec les nouvelles données. Cela fonctionne parfaitement, donnant result = 2 (variable plus un). Dans un deuxième temps, j'essaie de présenter le résultat du vote dans un autre div (#results
dans un autre site de la page). Le problème est, il rafraîchit la div, mais le résultat est incorrect, montrant 1 au lieu de 2 (ressemble à la variable n'a pas été envoyé, ou le div actualisé avant de recevoir le résultat).Système de vote avec jQuery AJAX
Je laisse le code complet au cas où quelqu'un veut essayer ...
Index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link type="text/css" rel="stylesheet" href="style.css" />
<script type="text/javascript" src="myjquery.js"></script>
</head>
<body>
<script type="text/javascript">
$(function(){
$(".n_vote").click(function() {
var id_field = $(this).attr("id");
var parent = $(this);
$.ajax({
type: "POST",
url: "up_vote.php",
data: {
id_field: id_field,
name: name
},
cache: false,
success: function(html) {
//Show the results in the same div
parent.html(html);
//Show the results in another div, #results
$("#results").load("up_vote.php");
}
});
return false;
});
});
</script>
<div class="vote_system">
<div class="n_vote" name="up" id="1">Clic here to show the result</div>
</div>
<!-- Correct result=2 -->
______________________________
<br>
Show the result in a another div:
<br>
<div class="results" id="results">
</div>
<!-- Incorrect result=1 -->
</body>
</html>
up_vote.php
<?php
$id_field = $_POST['id_field'];
echo 'Result=';
echo $id_field + 1;
?>
Quelqu'un peut-il avec plus d'expérience me expliquer pourquoi la deuxième div ne montre pas le bon résultat? Que se passe-t-il et comment le résoudre?