GORAGOD.com

freelance, web developer, web designer, hosting, domain name

Ajax หน้ามันซ้อนกันค่ะ แก้ยังไงดีเหรอคะ ลองหลายวันแล้วไม่ได้สะที

คือจะให้มีตัวเช็คหน้าอยู่ในหน้า Index อะค่ะ แล้วส่งค่าหน้าว่าเป็นหน้าอะไรแล้วใช้ Ajax เรียกมา แล้วทีนี้พอเรียกหน้า login เข้ามา ก็จะให้มันเป็น Ajax เช็คกับ mysql ว่า username กับ password ผ่านหรือไม่ โค้ดอยู่ข้างล่างค่ะ

 


<script type="text/javascript">

//var HttPRequest = false;
function callajax(){
 var 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;
      }
}

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

function chkpage(page,pre1,pre2) {

callajax();
var url = page+'.php';
var pmeters = "pre1=" + pre1+
"&pre2=" + pre2;
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("pg").innerHTML = "Now is Loading...";
   }
  
  if(HttPRequest.readyState == 4) // Return Request
   {      
    document.getElementById('headd').innerHTML = page+' : '+pre1;
    document.getElementById('pg').innerHTML = HttPRequest.responseText;
    //alert(HttPRequest.responseText);
   }           
  }

}

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

function Check_Login(url) {

if(document.getElementById('user').value==''){//alert("PLEASE ENTER USERNAME");
 document.getElementById('user').focus();
  return false;}
else if(document.getElementById('pass').value==''){
 alert("PLEASE ENTER PASSWORD");
 document.getElementById('pass').focus();
 return false;}
else{
callajax();
var pmeters = "user=" + document.getElementById('user').value+
"&pass=" + document.getElementById('pass').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("pg").innerHTML = "Now is Loading...";
   }
  
  if(HttPRequest.readyState == 4) // Return Request
   {         
   alert(HttPRequest.responseText);
  
   if(HttPRequest.responseText=="N"){
     document.getElementById("pg").innerHTML = "sdkfjoeijewitj";
        //alert('YOUR ACCOUNT IS NOT AVILABLE PLEASE CONTACT ADMINISTRATOR');
    }
    else{
    alert("Y");
            // chkpage(HttPRequest.responseText,'','');
    }
   }           
  }
}
}
 
</script>
<?
if(!$_SESSION['page']){ $p="login"; $chknew="Y"; }

else{ $p=$_SESSION['page'];  }?>

 <body <? if ($chknew=="Y"){ ?>onload="JavaScript:chkpage('<?=$p;?>','<?=$chknew;?>','');"
 <?  } ?>>
 <div>
 <h1><span id="headd"></span></h1></br>
 </div>
 <div id="pg"></div>
 
</body>
 


- -" งงมั้ยคะ พอดีคิดเองแล้วงงมาก ไม่รู้จะโหลดหน้า check page ตรงนี้ถูกรึเปล่า เพราะว่ามันใช้การได้ถ้ารับค่าเป็นหน้ามา แต่ถ้าในหน้านั้นมี ajax ซ้อนอีกทีอย่างเช่นของหน้า Login มันก็จะรัน function chklogin() แล้วพอยังไม่ทันแสดงผลมันก็เหมือนกับว่า รัน function chkpage อีกที มันก็เลยกลับมาอยู่หน้าเดิมอยู่ดีอะค่ะ

งง มั้ยงะ เราไม่รูัอธิบายเข้าใจป่าว คือเราไม่ค่อยเข้าใจโครงสร้างของมันค่ะ ช่วยทีนะคะ Please T T
02 เม.ย. 2553 1 4,218

งง ครับ...งงกับคำถาม

ถ้าจะให้เดาปัญหานะ

เราไม่สามารถใช้ Javascript ในหน้าที่ถูก Ajax เรียกได้ เรื่องนี้มีิธิบายบนเว็บครับ ลงหาอ่านดู
#1
ความคิดเห็น
ไฟล์อัปโหลด ชนิด jpg, jpeg ขนาดไฟล์ไม่เกิน 2M
^