A-AA+then

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

2,679

คือจะให้มีตัวเช็คหน้าอยู่ในหน้า 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

1 ความคิดเห็น

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

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

เราไม่สามารถใช้ Javascript ในหน้าที่ถูก Ajax เรียกได้ เรื่องนี้มีิธิบายบนเว็บครับ ลงหาอ่านดู
1
^