Bonjour j'ai récupéré un script de vote par étoile en ajax sur le net, qui fonctionne sous Safari et Firefox. Sous internet explorer 8 j'ai une erreur qui s'affiche "Error, please try again1" et le vote ne ce fait pas:
Je ne comprends pas d'où ça peut venir.
Je n'ai pas d'autre script sur ma page.
Merci d'avance
voici le code:
Je fais appel a trois fichiers JS:
Voici le code ajax:
et mon php qui communique qvec la BDD:
Je ne comprends pas d'où ça peut venir.
Je n'ai pas d'autre script sur ma page.
Merci d'avance
voici le code:
<script type="text/javascript" src="loco/rate-product-ajax.js"></script>
<form>
<input class="star {half:true} rate" type="radio" name="rate" value="1" />
<input class="star {half:true} rate" type="radio" name="rate" value="2" />
<input class="star {half:true} rate" type="radio" name="rate" value="3" />
<input class="star {half:true} rate" type="radio" name="rate" value="4" />
<input class="star {half:true} rate" type="radio" name="rate" value="5" />
<input class="star {half:true} rate" type="radio" name="rate" value="6" />
<input class="star {half:true} rate" type="radio" name="rate" value="7" />
<input class="star {half:true} rate" type="radio" name="rate" value="8" />
<input class="star {half:true} rate" type="radio" name="rate" value="9" />
<input class="star {half:true} rate" type="radio" name="rate" value="10" />
</form>
<div class="vote_count"></div>
Je fais appel a trois fichiers JS:
<script type="text/javascript" src="jquery.rating.js"></script>
<script type="text/javascript" src="jquery.MetaData.js"></script>
<script type="text/javascript" src="jquery.js"></script>
Voici le code ajax:
$(document).ready(function() {
var variable = location.search;
var variable = location.search.substring(1,location.search.length);
var variable = variable.substring(3);
var some_product_id=variable;
getRating(some_product_id);
function getRating(id){
$.ajax({
type: "GET",
url: "loco/rate-product.php",
dataType : 'json',
processData: false,
data: "do=getRate&product_id=" + id,
cache: false,
async: false,
success: function(result) {
avg=result.avg;
sum=result.count;
$("#votes").html;
$(".vote_count").html(sum + " vote(s)");
$('.rate').rating('select',avg);
},
error: function() {
alert("Error, please try again1");
}
});
}
$('.rate').click(function(){
$.ajax({
type: "GET",
url: "loco/rate-product.php",
dataType : 'json',
data: "do=rate&product_id=" + some_product_id + "&rate="+$(this).text(),
cache: false,
async: false,
success: function(result) {
avg=result.avg;
sum=result.count;
$("#votes").html("Average:" + avg);
$(".vote_count").html(sum + " vote(s)");
$('.rate').rating('select',avg);
$('input',this.form).rating('readOnly',true);
$('.rate').unbind('click');
},
error: function() {
alert("Error, please try again2");
}
});
});
});
et mon php qui communique qvec la BDD:
function getRate() {
$sql= "select ifnull(round(sum(rate)/count(*),0),0) avg, count(*) count from rate where product_id=" . $_GET['product_id'];
if($result=mysql_query($sql)) {
if($row=mysql_fetch_array($result)) {
$rate['avg'] = $row['avg'];
$rate['count'] = $row['count'];
echo json_encode($rate);
}
}
}
function rate() {
$ip = $_SERVER["REMOTE_ADDR"];
$product = $_GET['product_id'];
$valideip = "SELECT * FROM rate WHERE ip = '$ip' AND product_id = '$product' ";
$sql = "insert into rate (product_id, rate, ip) values (" . $_GET['product_id'] . ", ".$_GET['rate'].",'$ip')";
if($result=mysql_query($sql)) {
getRate(); //call retrieve from getRate function
}
}
if(!empty($_GET['do'])) {
include 'config.php';
include 'opendb.php'; //open database connection
if($_GET['do']=='rate'){
// do rate
rate();
}
else if($_GET['do']=='getRate'){
// get rating
getRate();
}
}