我目前正在使用電子商務購物網站,其中需要對不同產品進行評分。我正在使用星級評分腳本。Ajax無法在Internet Explorer中正常工作
一切工作正常,但根據訪問者的IP,產品應僅評分一次,一旦訪問者點擊一顆星星(五顆星之一),應禁用所有星星,以便同一產品的重複評級與可以防止相同的IP(我也使用服務端驗證),根據來自數據庫的新值的平均評分應由相同的星號(剛剛被禁用)指示。
它在Firefox上工作,沒有任何問題。當訪問者點擊星號時,會向數據庫傳遞一個新值(使用Ajax),並根據新值計算並顯示平均評級,但Internet Explorer無法使用Ajax從數據庫檢索新值。
我只是用非常簡單的代碼演示了這個問題,如下所示。
以下是Temp.php文件
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" language="javascript">
var xmlhttp;
function ajax()
{
if(window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
else
{
xmlhttp = new ActivexObject("Microsoft.XMLHTTP");
}
}
function loadStars(prod_id)
{
ajax();
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("ajax_response").innerHTML=xmlhttp.responseText;
var rating= document.getElementById("rating_value").value;
alert(rating); //Rating value of hidden field from the ajax response is alered.
}
}
var queryString="Temp1.php?prod_id="+prod_id;
xmlhttp.open("GET", queryString, true);
xmlhttp.send();
}
</script>
</head>
<body onload="loadStars(11);">
<span id="ajax_response"></span>
</body>
</html>
和下面是Temp1.php
<?php
include_once("../Connection.php");
$con=new Connection();
$con->get_connection();
if(isset($_GET['prod_id']))
{
$result=mysql_query("select rating_num from rating where prod_id=".$_GET['prod_id']."");
$rating=mysql_result($result, 'rating_num');
echo "<input type='hidden' id='rating_value' name='rating_value' value='$rating'/>";
}
?>
在這兩個文件中的代碼有沒有關係。 JS的功能loadStars(prod_id)
是呼籲onload
事件(看身體標記),它實際調用Ajax請求,從數據庫中檢索rating_num
和簡單存儲到一個名爲rating_value
一個隱藏字段這是使用在Temp.php
文件終於驚動了Temp1.php
alert(rating);
實際的問題是,在這裏當rating_num
值在數據庫改變,火狐顯示更新的值,它是必不可少的,但的Internet Explorer(8)仍顯示舊值,即使頁面刷新和重新加載一次又一次。
應該是什麼原因?有沒有解決這個問題的方法?希望你能明白我的意思。
什麼是解決方案!我可以給+1000,但非常不幸,我只有+1。 – Bhavesh
我很高興能夠提供幫助。 – jmort253