2009-05-21 6 views
-2

나는 PHP, AJAX 및 Javascript에 의존하는 웹 사이트를 만들었습니다.
여기 웹 사이트가 불안정하여 유효성 검증이 작동하고 때때로 작동하지 않는 경우가 있음을 의미합니다.
유효성 확인 코드는 JavaScript로 작성되었습니다. 이것은 우리가 더 특별한 조건을 필요로한다는 것을 의미합니까? 검증왜 AJAX 유효성 검사 코드가 제대로 작동하지 않습니까?

코드 :

검증은 서버 측에서 수행해야
<script language=Javascript> 
function Inint_AJAX() { 
try { return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) {} //IE 
try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) {} //IE 
try { return new XMLHttpRequest(); } catch(e) {} //Native Javascript 
alert("XMLHttpRequest not supported"); 
return null; 
}; 

function dochange(src, val) 
{ 
var req = Inint_AJAX(); 
req.onreadystatechange = function() 
{ 
     if (req.readyState==4) 
     { 
      if (req.status==200) 
      {  
       document.getElementById(src).innerHTML=req.responseText; 
      } 
     } 
}; 
req.open("GET", "traditional_locate.php?data="+src+"&val="+val); 
    req.send(null); 
} 

window.onLoad=dochange('cities', -1); 


function submitform() 
{ 
if(document.form1.onsubmit()) 
{ 
    document.form1.submit(); 
} 
} 

function validate() 
{ 
    var p_o_box=(document.form1.p_o_box.value); 
    var owner_name=(document.form1.owner_name.value); 
    var cities=(document.form1.cities.value); 
    var post_office=(document.form1.post_office.value); 


     if(cities == 0) 
     { 
      alert("Please Choose city"); 
      document.form1.cities.focus(); 
      return false; 
     } 

     else if(post_office == 0) 
      { 
      alert("Please Choose post office"); 
      document.form1.post_office.focus(); 

      return false; 
      } 

      else if (p_o_box=="") 
       { 
        alert ("Please Write P.O.Box"); 
        document.form1.p_o_box.focus(); 
         return false;      
       } 

       else if(owner_name=="") 
         { 
         alert("Please Write Owner Name"); 
         return false; 
         } 

        else if(p_o_box!="") 
         { 
           var a=new Array; 

          <?php 
           session_start();          
           $zipinfo=$_SESSION[zip_code];         
           $conn=mysql_connect('localhost','root',''); 
           mysql_select_db('post_db',$conn); 
           $query="select p_o_box from p_o_box where zip_code='$zipinfo' "; 
           $result = mysql_query ($query , $conn) or die (mysql_error()); 
           $rows=mysql_num_rows($result); 
           $n = array(); 
           for($i=0;$i<$rows;$i++) 
           { 
            $data=mysql_fetch_row($result); 
            $n[] = $data[0]; 
           } 

           for($i=0;$i<count($n); $i++) 
           { 
            echo "a[$i]='".$n[$i]."';\n"; 
           }   
           ?> 

           var ss=0; 
           for(i=0;i<a.length;i++) 

           if(a[i]==p_o_box) 
            { 
             var ss=1; 
            } 

           if (ss==0) 
            { 
             alert('not correct p.o. box'); 
             document.form1.p_o_box.focus(); 
              return false; 
            } 
           else 
            { return true;} 

         }      


    return true;   
} 

</script> 
+0

행운을 빌어 요. 프레임 워크를 재사용하는 것이 좋습니다. 이 코드는 간단한 양식 유효성 검사를하기에는 너무 복잡합니다. –

답변

0

. 사용으로 인해 자바 스크립트가 사용 중지되면 어떻게됩니까?

또한이 자바 스크립트 블록은 사용자가 확인할 때마다가 아니라 페이지가로드 될 때만 PHP를 실행합니다.

1

질문이 없기 때문에 대답하기가 어렵습니다. 정확히 작동하지 않는 것은 무엇입니까?

하지만 몇 가지 문제 가정 할 수 있습니다

  • 당신에게 확신을 그하여 body.onload 실행? 때로는하지 않습니다 ...
  • 스크립팅은 크로스 브라우저가 아닙니다
  • 이전에 출력이 있고 헤더를 보낼 수 없으므로 session_start()가 실패해야합니다.
  • 당신은 유효성 검사가 실패했다고 말했지만 어디에서 불려 가고 있습니까?

제발, 작동하지 않는 코드의 더 정확한 질문과 더 명확한 예를 제공하십시오. 즉, submitform() 소스가 그다지 중요하지 않습니다.

관련 문제