ajax ให้ขึ้นชื่อ-สกุล เมื่อ บันทึกรหัส ช่วยดู code ให้ด้วยครับ ว่า ทำไม เมื่อใส่ รหัสเข้าไปแล้ว
ช่วยดู code ให้ด้วยครับ ว่า ทำไม เมื่อใส่ รหัสเข้าไป
แล้ว มันแสดง เฉพาะ สกุล ชื่อจะไม่แสดง
ที่ function ajaxCall(code)
ได้ เรียกอีก 2 function
ajaxLoad('get', URL1, null, 'result' ); -----------------------1
alert(URL1); /////// ถ้าไม่ใส่บรรทัดนี้ และ แสดง ค่า ที่ สกุล ที่เดียว (id=result2)
////// ถ้า ให้ขึ้น alert ก็จะแสดง ทั้ง ชื่อ-สกุล
URL2 =URL+'&item=2' ;
ajaxLoad('get', URL2, null, 'result2' ); -------------------------2
ขอบคุณมากครับ
///// test1.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>ajax TEST</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-874">
<script>
var ajax = null;
if(window.ActiveXObject) {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHTTPRequest) {
ajax = new XMLHTTPRequest();
}
function ajaxLoad(method, URL, data, displayId ) {
ajax.open(method, URL);
ajax.onreadystatechange = function() {
if(ajax.readyState==4 && ajax.status==200) {
ajaxCallback(displayId, ajax.responseText);
}
}
ajax.send(data);
}
function ajaxCallback(displayId, responseText){
var el = document.getElementById(displayId);
el.value = responseText;
}
function ajaxCall(code) {
var vcode = code.value ;
var URL = "test1_ss.php" ;
URL +="?code="+vcode ;
var URL1 =URL+'&item=1' ;
ajaxLoad('get', URL1, null, 'result' );
alert(URL1); /////// ถ้าไม่ใส่บรรทัดนี้ และ แสดง ค่า ที่ สกุล ที่เดียว (id=result2)
////// ถ้า ให้ขึ้น alert ก็จะแสดง ทั้ง ชื่อ-สกุล
URL2 =URL+'&item=2' ;
ajaxLoad('get', URL2, null, 'result2' );
}
</script>
</head>
<body>
<center>
รหัส <INPUT TYPE="text" NAME="kisic" id=isic onblur="ajaxCall(this)" ; <br>
ชื่อ <INPUT TYPE="text" NAME="result" id = "result" size="80" maxlength="80" ><br>
สกุล <INPUT TYPE="text" NAME="result2" id = "result2" size="80" maxlength="80" ><br>
/////test1_ss.php
header ("Content-Type: text/html; charset=tis-620");
$code = $_GET['code'] ;
$item =$_GET['item'] ;
switch($item){
case 1 :
echo 'ชื่อAAAAAA' ;
break ;
case 2 :
echo 'สกุลBBBBB' ;
break ;
}
?>Tag : - - - -
Date :
2010-06-01 12:59:09
By :
อำ
View :
1240
Reply :
1
การทำงานของโปรแกรมคือใช้ฟังชั่นเดียวกันทำงานต่อกัน ปัญหาที่เกิดคือเรียกฟังก์ชันไปครั้งแรกแล้วฟังก์ชั่นนั้นยังทำงานไม่เสร็จแล้วมีการเรียกฟังก์ชั่นอีกครั้ง ทำให้การเรียกข้อมูลครั้งแรกจะถูกยกเลิกไปครับ ลองเขียนใหม่แบบนี้ดูครับ
Code
<script>
function ajaxRunning(){
var ajax=null;
if(window.ActiveXObject){
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}else if(window.XMLHttpRequest){
ajax = new XMLHttpRequest();
}
this.ajaxLoad = function(method,URL,data,displayId){
ajax.open(method,URL);
ajax.onreadystatechange = function(){
if(ajax.readyState == 4 && ajax.status == 200){
ajaxCallback(displayId,ajax.responseText);
}
}
ajax.send(data);
}
function ajaxCallback(displayId,responseText){
document.getElementById(displayId).value = responseText;
}
}
function ajaxCall(code){
getFirstName = new ajaxRunning;
getLastName = new ajaxRunning;
var urlFirstName = "test1_ss.php?code="+code+"&item=1";
var urlLastName = "test1_ss.php?code="+code+"&item=2";
getFirstName.ajaxLoad('get',urlFirstName,null,'result');
getLastName.ajaxLoad('get',urlLastName,null,'result2');
}
</script>
รหัส <INPUT TYPE="text" NAME="kisic" id=isic onblur="ajaxCall(this.value)"> <br>
ชื่อ <INPUT TYPE="text" NAME="result" id = "result" size="80" maxlength="80" ><br>
สกุล <INPUT TYPE="text" NAME="result2" id = "result2" size="80" maxlength="80" ><br>
จะเห็นว่าผมทำงานสร้าง object ขึ้นมาสองตัวชื่อ
getFirstName กับ getLastName ซึ่งการทำงานจะทำอยู่คนละ object ทำให้ไม่ซ้ำซ้อนกัน
ผมอาจจะอธิบายงงครับ ลองศึกษาเพิ่มเกี่ยวกับ object ใน javascript ดูครับ
Date :
2010-06-01 17:16:38
By :
AnimalMan
Load balance : Server 05