list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

พูดคุย แลกเปลี่ยน ปัญหา การเขียน JavaScript เครื่องมือ AJAX Web 2.0 AJAX Framework Jquery

Moderator: mindphp

User avatar
lovehinatava
PHP Jr. Member
PHP Jr. Member
Posts: 19
Joined: 01/01/1970 7:00 am

list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by lovehinatava » 23/03/2009 11:00 am

ผมทำ list box 2 ชั้น จังหวัดกับเขตโดยใช้ ajax ใช้กับ ie,opera ได้ แต่ firefox ไม่้ขึ้นเขต เมื่อเราเลือกจังหวัดครับ
ช่วยดูให้ทีครับ

Code: Select all

<script language="javascript">
var xmlHttp;

function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} 
else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}

function list_namesub(id) {
var obj = document.getElementById("area");
var obj_default = '--- ทั้งหมด ---';
if(id ==""){
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
obj[0] = new Option(obj_default,'');}else{
var url = "getarea.php?id="+ id;
createXMLHttpRequest();
xmlHttp.onreadystatechange = handleStateChange;//ใน firefox ฟ้อง error ว่าหาไม่เจอฟังก์ชั่นนี้ครับ
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
function handleStateChange() {
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
var results = xmlHttp.responseText;
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
arr_list=results.split("/");
if(arr_list.length-1!=0){
for (var i=0; i < eval(arr_list.length-1); i++) {
shop_arr=arr_list[i].split(",");
obj.options[i] = new Option(shop_arr[0],shop_arr[1]); 
}}else{
while(obj.childNodes.length>0){obj.removeChild(obj.childNodes[0]);}
obj[0] = new Option(obj_default,'');
}
}
}}
}}
</script>
XMLHttpRequest ผมก็ดัก firefox แล้วนะ แต่แก้ยังไงก็ไม่หายอะครับ

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22526
Joined: 22/09/2008 6:18 pm
Contact:

Re: list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by mindphp » 23/03/2009 2:00 pm

ลองเปลี่ยนเป็น

Code: Select all

ajaxRequest.onreadystatechange = function(){
	if(ajaxRequest.readyState == 4){
		// ข้อมูลจาก Server 
	}
}
จริงๆ การเขียน Ajax แนะนำให้ใช้ ajax lib จะดีกว่านะครับ มันจะช่วยลดปัญหา javascript เข้ากันไม่ได้กับ ทุก browser
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

User avatar
lovehinatava
PHP Jr. Member
PHP Jr. Member
Posts: 19
Joined: 01/01/1970 7:00 am

Re: list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by lovehinatava » 23/03/2009 5:15 pm

ขอบคุณครับแล้วจะลองแก้ดูนะครับ

งั้นรบกวนช่วยแนะนำ framework ที่คนนิยมใช้หน่อยได้ไหมครับ

เห็นหลายที่ แนะนำ framework คนละตัวกัน เลยไม่รู้ว่าจะใช้ของตัวไหนดีครับ (แต่เห็น prototype เยอะสุดอะครับ)

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22526
Joined: 22/09/2008 6:18 pm
Contact:

Re: list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by mindphp » 23/03/2009 7:08 pm

การเลือก lib การนำมาใช้ มันก็ขึ้นอยู่กับ ลักษณะงาน ของที่ทำอยู่ครับ
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

User avatar
mindphp
ผู้ดูแลระบบ MindPHP
ผู้ดูแลระบบ MindPHP
Posts: 22526
Joined: 22/09/2008 6:18 pm
Contact:

Re: list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by mindphp » 17/12/2009 2:45 am

ลองดูที่หมวด
https://www.mindphp.com/forums/viewforum.php?f=25
ติดตาม VDO: http://www.youtube.com/c/MindphpVideoman
ติดตาม FB: https://www.facebook.com/pages/MindphpC ... 9517401606
หมวดแชร์ความรู้: https://www.mindphp.com/forums/viewforum.php?f=29
รับอบรม และพัฒนาระบบ: https://www.mindphp.com/forums/viewtopic.php?f=6&t=2042

indysoft
PHP Newbie
PHP Newbie
Posts: 3
Joined: 17/12/2009 9:49 am

Re: list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by indysoft » 17/12/2009 10:24 am

ผมติดปัญหาเรื่องนี้อยู่เหมือนกันครับ แต่ไม่ใช้โค๊ดชุดนี้นะ จากลิงค์นี้นะ

ก็ติดปัญหา Firefox เหมือนกัน หากใครเคยแก้ปัญหาได้ หรือมีสคริปอื่นๆช่วยเอามาแนะนำหน่อยนะ

indysoft
PHP Newbie
PHP Newbie
Posts: 3
Joined: 17/12/2009 9:49 am

Re: list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by indysoft » 18/12/2009 2:53 am

ตอนนี้แก้ปัญหาได้แล้วนะ เอาสคริปลิงค์ที่ผมให้ไว้ แล้วไปแก้ ตรงหน้า frmMain ทุกตัว ให้ใส่ document. แค่นี้ก็เล่นกับ Firefox ได้เลยครับ

fitta
PHP Newbie
PHP Newbie
Posts: 1
Joined: 23/10/2011 7:30 pm

Re: list box 2ชั้น ajax ใช้ไม่ได้กับ firefox ครับ

Post by fitta » 23/10/2011 7:36 pm

<script>
var xmlHttp;
function createXMLHttpRequest() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject('Microsoft.XMLHTTP');
}else if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}

function list_namesub(id) {
var obj = document.getElementById('model');
var obj_default = 'เลือกรุ่น';
if(id ==''){
while(obj.childNodes.length>0){
obj.removeChild(obj.childNodes[0]);
}
obj[0] = new Option(obj_default,'');
}else{
var url = 'get_subname.php?id=' + id;
createXMLHttpRequest();
xmlHttp.onreadystatechange = function handleStateChange() { //ย้ายฟังชั่น มาแทนที่เลย แก้ปัญหา ใน fire fox ได้
if(xmlHttp.readyState == 4) {
if(xmlHttp.status == 200) {
var results = xmlHttp.responseText;
while(obj.childNodes.length>0){
obj.removeChild(obj.childNodes[0]);
}
arr_list=results.split('/');
if(arr_list.length-1!=0){
for (var i=0; i < eval(arr_list.length-1); i++) {
shop_arr=arr_list.split(',');
obj.options = new Option(shop_arr[0],shop_arr[1]);
}
}else{
while(obj.childNodes.length>0){
obj.removeChild(obj.childNodes[0]);
}
obj[0] = new Option(obj_default,'');
}
}
}
} //สิ้นสุดฟังชั่น handleStateChange
xmlHttp.open('GET', url, true);
xmlHttp.send(null);
}
}


</script>



//////////////////////////////////////

แก้ไขตรง

xmlHttp.onreadystatechange = handleStateChange;

เป็น ฟังชั่นเลยนะครับ ตาม code ข้างบนแก้ไขแล้ว

ฟันธงครับ ได้ชัว

Post Reply

Return to “JavaScript & Jquery Ajax”

Users browsing this forum: No registered users and 3 guests