11548 sujets

JavaScript, DOM et API Web HTML5

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:

<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();
	}
}
Bonjour,

sur IE8 tu dois avoir le profiler ( F12 ).
Je pense que ton soucis vient du fait que ton JS n'appelle pas le bon script ( "loco/rate-product.php" ). Tu devrais pouvoir le vérifier avec le profiler.

As-tu un <base href="http://www.tonadresse.fr" /> dans ta page ?
Merci pour vos reponses, en effet, je ne suis pas sur que mon script ouvre mon fichier php, mais comment je pourrais le verifier s'il vous plait. Smiley bawling