|
|
|
ปัญหา code ajax ไม่ยอมทำงาน ใน ie8 ค่ะ ช่วยหน่อยนะค่ะ |
|
|
|
|
|
|
|
เอาโค้ดมาดูด้วย ดีกว่าค่ะ
|
|
|
|
|
Date :
2011-01-14 16:13:32 |
By :
ultrasiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var HttPRequest = false;
function doCallAjax(ftxtuser,fSpanGroup,fSpanTel,fddlCom,fhfuserID,fbntSave) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false;
}
var url = 'AjaxGetFill.php';
var pmeters = "ttxtuser=" + encodeURI( document.getElementById(ftxtuser).value)+
"&tSpanGroup=" + encodeURI( document.getElementById(fSpanGroup).value )+
"&tSpanTel=" + encodeURI( document.getElementById(fSpanTel).value )+
"&tddlCom=" + encodeURI( document.getElementById(fddlCom).value );
HttPRequest.open('POST',url,true);
HttPRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
HttPRequest.setRequestHeader("Content-length", pmeters.length);
HttPRequest.setRequestHeader("Connection", "close");
HttPRequest.send(pmeters);
HttPRequest.onreadystatechange = function()
{
//if(HttPRequest.readyState == 3) // Loading Request
//{
//document.getElementById(fProductName).innerHTML = "..";
//}
if(HttPRequest.readyState == 4) // Return Request
{
var myProduct = HttPRequest.responseText;
if(myProduct != "")
{
var myArr = myProduct.split("|");
document.getElementById(fSpanTel).value = myArr[0];
document.getElementById(fSpanGroup).value = myArr[2];
document.getElementById(fhfuserID).value = myArr[3];
document.getElementById("hfGroupID").value = myArr[4];
document.getElementById("hfParentID").value = myArr[5];
document.getElementById(fbntSave).disabled=false;
if(myArr[1]!="" && myArr[2]!=""){
//document.getElementById(fddlCom).value = myArr[1];
document.getElementById("hfComID").value = myArr[1];
document.getElementById(fddlCom).value = myArr[6];
}
else{document.getElementById(fbntSave).disabled=true;document.getElementById(fddlCom).value = "";
}
}
}
}
}
ปล.เอามารันในFirefox และIE6-7 ได้ ทำงานได้ปกติค่ะ
|
|
|
|
|
Date :
2011-01-14 16:21:42 |
By :
paesalee |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโค้ดหน้าที่เรียก ajax ด้วยค่ะ ขอเอามาลองหน่อย แบบนี้ คงทำอะไรไม่ได้ ปกติใช้ ajax กับ IE8 ก็ปกติดี ไม่มีปัญหาอะไร อาจเป็นที่คำสั่งของ javascript บางคำสั่งก็ได้ค่ะ ต้องลองบัคดูก่อน
|
|
|
|
|
Date :
2011-01-14 17:11:20 |
By :
ultrasiam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var HttPRequest = false;
function doCallAjax(ftxtuser,fSpanGroup,fSpanTel,fddlCom,fhfuserID,fbntSave) {
HttPRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
HttPRequest = new XMLHttpRequest();
if (HttPRequest.overrideMimeType) {
HttPRequest.overrideMimeType('text/html');
}
} else if (window.ActiveXObject) { // IE
try {
HttPRequest = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
HttPRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!HttPRequest) {
alert('Cannot create XMLHTTP instance');
return false; <<<<====================================
}
เป็นเหมือนกันเลยครับ หน้าสมัครไอดี พอลอง ดูที่ Error มันบอกว่า มีปัญหาที่ บรรทัดนี้ครับ
Reture false;
บรรทัดที่ทำลูกศร ไว้อะครับ
คือมันบอกว่าไม่สามารถ สร้าง ออฟเจค ได้ ทั้งที่ ก่อนนี้ลองใน IE7 ก็ใช้ได้ปรกติ
งง เลย
|
|
|
|
|
Date :
2011-01-27 16:41:45 |
By :
scriptgods |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (JS)
ลองเขียน ajax โดยใช้ jQuery ดูมั้ย
<form>
......
.....
สมมติ คลิกปุ่ม <input type='button' onclik="doCallAjax()" value=">คลิกส่งข้อมูลจาก ajax">
</form>
<script language="javascript" type="text/javascript" src="js/jquery.js"></script>
<script language="javascript" type="text/javascript">
function doCallAjax(){
var user =$("#ftxtuser").val(); //แบบเดิมเรียก document.getElementById(ftxtuser).value แบบใหม่ $("#ftxtuser").val();
var Group=$("#fSpanGroup").val();
var Tel=$("#fSpanTel").val();
var Com=$("#fddlCom").val();
$.ajax({
type: "POST",url: "AjaxGetFill.php",data: " ttxtuser="+ user +"&tSpanGroup="+ Group +"&tSpanTel="+ Tel +"&tddlCom="+ Com +"&dumy="+Math.random(),dataType: "text/html",
error: function(){alert('Loading time out');}, //ถ้าโหลดไม่เสร็จให้แสดง err
beforeSend: function(){$("#fProductName").html("<img src='images/loading.gif'>");}, //ขณะโหลดข้อมูลให้แสดงรูปโหลด
success: function(html){ //เมื่อโหลดข้อมูลเสร็จแล้ว
if(html!="")
{
var myArr = html.split("|");
$("#fSpanTel").val() = myArr[0];
$("#fSpanGroup").val() = myArr[2];
$("#fhfuserID").val() = myArr[3];
$("#hfGroupID").val() = myArr[4];
$("#hfParentID").val() = myArr[5];
$("#fbntSave").attr("disabled",false);
if(myArr[1]!="" && myArr[2]!=""){
//$("#fddlCom").val()= myArr[1];
$("#hfComID").val() = myArr[1];
$("#fddlCom").val() = myArr[6];
}
else{$("#fbntSave").attr("disabled",true); $("#fddlCom").val() = "";
}
}
});
}
</script>
|
ประวัติการแก้ไข 2011-01-29 01:50:01 2011-01-29 02:00:00
|
|
|
|
Date :
2011-01-29 01:49:15 |
By :
chineji |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมพอจะรู้สาเหตุ แล้วครับ
เกิดจาก เราใช้ชื่อ ไอดี ใน แต่ละ object ซ้ำกันครับ
อย่างเช่น
ไฟล์ HTML1 <span onclick="showinfo(this.value)">คลิกเพื่อดูรายละเอียด</span><div id=user_info> แสดง ข้อมูลผู้ใช้ </div>
ไฟล์ HTML2 <span onclick="showgoods(this.value)">คลิกเพื่อดูรายละเอียด</span><div id=user_info > รายชื่อ สินค้า</div>
ในไฟล์ fonctions.js
function showinfo(str)
{
if (str.length==0)
{
document.getElementById("user_info").innerHTML="";
return;
}
function showgoods(str)
{
if (str.length==0)
{
document.getElementById("user_info").innerHTML="";
return;
}
ทำแบบนี้ปรากฏว่าใน IE7 ใช้งานได้ // แต่พอมาเปลี่ยนเป็น IE8 ใช้งานไม่ได้ครับ
ผมก็แค่ แก้เป็นแบบนี้
ไฟล์ HTML1 <span onclick="showinfo(this.value)">คลิกเพื่อดูรายละเอียด</span><div id=user_info1> แสดง ข้อมูลผู้ใช้ </div>
ไฟล์ HTML2 <span onclick="showgoods(this.value)">คลิกเพื่อดูรายละเอียด</span><div id=user_info2 > รายชื่อ สินค้า</div>
ในไฟล์ fonctions.js
function showinfo(str)
{
if (str.length==0)
{
document.getElementById("user_info1").innerHTML="";
return;
}
function showgoods(str)
{
if (str.length==0)
{
document.getElementById("user_info2").innerHTML="";
return;
}
ใช้งานได้ทันทีเลย ใน IE8
เหอะๆ
ไม่รู้ว่า ถูกต้อง ตาม ที่เจ้าของกระทู้ต้องการหรือป่าว นะครับ
แต่ผมแก้แบบนี้แล้ว ทำงานได้ปรกติเลย
ผิดพลาด ยังไง ช่วย แย้งได้เลย นะครับ
ผม มือใหม่ ครับ ^^
|
|
|
|
|
Date :
2011-02-06 14:17:25 |
By :
scriptgod |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เสริมอีกนิด ครับ
จากปัญหา ของผม เมื่อแก้ปัญหาได้แล้ว
ทำให้ผมได้เรียนรู้ว่า ไม่ว่าจะ สร้าง Object เยอะแค่ใหน
พยายาม อย่าใช้ ชื่อซ้ำกัน ถือแม้ว่าจะทำงานใน จุดเดียวกัน - -*
|
|
|
|
|
Date :
2011-02-06 14:19:43 |
By :
scriptgod |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|