10/10/2018, 10:55
Lỗi ajax không chạy được trên IE, cần giúp đỡ !
Chào mọi người. Em đang làm một file html để search ontime bằng Ajax mà không hiểu sao nó chạy hoàn toànt tốt trên FF mà với IE (nhà em là 7.0) lại không chịu hiện hoạt động gì hết (thuộc tính onreadychange của XMLHttpRequest chỉ thự thi 1 lần, không thực thi lần thứ hai khi mà open lần 2 ??!).
Đây là code index.html :
Đây là code Jscript.js nằm trong thư mục js/Jscript.js :
Còn đây là code core.php nhận đối số là key :
Có ai biết về Ajax thì chỉ em với !
Đây là code index.html :
PHP Code:
<html>
<head><title>Ajax testing ...</title>
<style type="text/css">
#choose
{
width: 229px;
}
body
{
font-family:Verdana;
font-size:12px;
}
#result
{
padding: 5px;
text-align : left;
font-style:italic;
}
</style>
</head>
<script src="js/JScript.js" type="text/javascript"></script>
<!-- get ajax core -->
<body>
Go vao key
<div>
<br />
<input type="text" id="choose" value="Something here" />
</div>
<!-- result -->
<div id="result"> <!-- noi dung ket qua --> </div>
</body>
</html>
PHP Code:
// XMLHttpRequest variable (global)
var xmlHttp = null;
// get XMLHttpRequest ->
function getAJAX()
{
// take XMLHttpRequest
try {
// Firefox, Opera, Safari
xmlHttp = new XMLHttpRequest();
}
catch(e) {
// for IE
try {
// for IE 6+
xmlHttp = new ActiveXObject('Msxml2.XMLHTTP');
}
catch(e) {
// for IE 5.5+
try {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
} catch(e) {alert(e)};
}
}
// define onreadychange property
try {
xmlHttp.onreadystatechange = function () {
// finish request
if(xmlHttp.readyState == 4)
{
// inner HTML result
var t = xmlHttp.responseText;
document.getElementById('result').innerHTML = t;
}
}
}
catch(e){alert(e)}
} //end function
// show content result
var i = 0;
function show()
{
// check xmlHttp
if(!xmlHttp) return;
// url
var url = 'core.php?key=' + document.getElementById('choose').value;
// open request
xmlHttp.open('GET',url,true);
xmlHttp.send(null);
i++; document.getElementById('result').innerHTML += i;
}
// onload
window.onload = function () {
getAJAX();
if(!xmlHttp) alert('The browser does not support Ajax !'); return;
var loop = setInterval('show();',1000);
}
PHP Code:
<?php
// ajax core PHP page
// headers
header('Cache-Control: no-cache, must-revalidate');
//date in past
header('Expire: Mon, 26 Jul 1997 05:00:00 GMT');
// connect to localhost
$conn = mysql_connect('localhost','root','root');
mysql_select_db('database');
// string content
$string = ';
// get key
$key = $_GET***91;'key'***93;;
if(!$key) exit();
$key = addslashes($key);
// query
$query = mysql_query("select * from table where `name` like '%$key%' order by `name` asc;");
// fetch value
while($value = mysql_fetch_array($query))
{
$string .= '- ' . $value***91;'name'***93; . '<br />';
}
echo $string;
// disable connect
mysql_close($conn);
?>
Bài liên quan
http://www.raovat.net
- Với server PHP thì thêm các header để cho client không cache
- Vơi vài mẹo javascript để làm link khác đi khiến cho IE nó không cache giữ liệu
Để biết thêm thì bạn nên đọc bài trong đường link này , không biết diễn đàn dưới này có bắt thành viên đăng ký mới xem được bài không , nếu yêu cầu bạn đăng ký sẽ xem được T_T:
http://www.updatesofts.com/forums/sh...ad.php?t=82535