>백엔드 개발 >PHP 튜토리얼 >Ajax를 통해 제출한 후 TP가 정의되지 않은 것으로 표시되는 이유는 무엇입니까?

Ajax를 통해 제출한 후 TP가 정의되지 않은 것으로 표시되는 이유는 무엇입니까?

WBOY
WBOY원래의
2016-12-01 00:56:491300검색

제출 후 백그라운드에서는 $name=I('name') 및 $pw=I('pw')를 통해 데이터를 수신하지만 에코가 나온 후에는 정의되지 않음이 표시됩니다. 반환되는 값은 항상 0입니다. 코드의 Ajax 부분인가요? 그런데 F12로 확인해보니 맞네요

<code><script type="text/javascript">
       function ajax(url,data,data2,funsucc){
            var oAjax=new XMLHttpRequest();
            oAjax.open('post',url,true);                   
            oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
            oAjax.send("name="+data+"&pw="+data2);    
            oAjax.onreadystatechange=function(){
              if(oAjax.readyState==4){
                if(oAjax.status==200){
                  funsucc(oAjax.responseText);
                }
              }
            }
        }
</script>
<script type="text/javascript">
window.onload=function(){
   var oBtn1=document.getElementById('btn1');
   var oName=document.getElementById('name');
   var oPw=document.getElementById('pw');
   var oDiv5=document.getElementById('div5');
   oBtn1.onclick=function(){
      oV1=oName.value;
      oV2=oPw.value;
      ajax("{:U('login/ajax')}",oV1,oV2,function(str){
        oDiv5.innerHTML=str;
      });
    }
}
</script></code>
<code>public function ajax(){
            $user=M('user');
            $name=I('name');
            $pw=I('pw');
            echo $pw;                      //提示未定义
            echo $name;                    //提示未定义    
            $res1=$user->where("username='$name' AND password='$pw'")->select();
            if($res1){
                $res=1;
            }else{
                $res=0;
            }
        $this->ajaxReturn($res);
    }</code>

답글 내용:

제출 후 백그라운드에서는 $name=I('name') 및 $pw=I('pw')를 통해 데이터를 수신하지만 에코가 나온 후에는 정의되지 않음이 표시됩니다. 반환되는 값은 항상 0입니다. 코드의 Ajax 부분인가요? 그런데 F12로 확인해보니 맞네요

<code><script type="text/javascript">
       function ajax(url,data,data2,funsucc){
            var oAjax=new XMLHttpRequest();
            oAjax.open('post',url,true);                   
            oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
            oAjax.send("name="+data+"&pw="+data2);    
            oAjax.onreadystatechange=function(){
              if(oAjax.readyState==4){
                if(oAjax.status==200){
                  funsucc(oAjax.responseText);
                }
              }
            }
        }
</script>
<script type="text/javascript">
window.onload=function(){
   var oBtn1=document.getElementById('btn1');
   var oName=document.getElementById('name');
   var oPw=document.getElementById('pw');
   var oDiv5=document.getElementById('div5');
   oBtn1.onclick=function(){
      oV1=oName.value;
      oV2=oPw.value;
      ajax("{:U('login/ajax')}",oV1,oV2,function(str){
        oDiv5.innerHTML=str;
      });
    }
}
</script></code>
<code>public function ajax(){
            $user=M('user');
            $name=I('name');
            $pw=I('pw');
            echo $pw;                      //提示未定义
            echo $name;                    //提示未定义    
            $res1=$user->where("username='$name' AND password='$pw'")->select();
            if($res1){
                $res=1;
            }else{
                $res=0;
            }
        $this->ajaxReturn($res);
    }</code>

<code>  var oName=document.getElementById('name');
   var oPw=document.getElementById('pw');
</code>

이 두 데이터를 시험해 보고 개체 할당을 찾을 수 없으면 정의되지 않은 것입니다.

정의되지 않은 것은 js 문제임에 틀림없습니다. 자세한 오류를 게시해 주세요

제출된 양식의 데이터를 확인하세요

ajax("{:U('login/ajax')}",oV1,oV2,function(str){ });

<code>  你这个地方只是把值传进去了,没有定义 name,pw.</code>
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.