Heim  >  Artikel  >  Backend-Entwicklung  >  Warum wird TP nach der Übermittlung über Ajax als undefiniert angezeigt?

Warum wird TP nach der Übermittlung über Ajax als undefiniert angezeigt?

WBOY
WBOYOriginal
2016-12-01 00:56:491236Durchsuche

Nach der Übermittlung empfängt der Hintergrund Daten über $name=I('name') und $pw=I('pw'), aber nachdem das Echo ausgegeben wurde, wird undefiniert angezeigt. Der zurückgegebene Wert ist immer 0. Handelt es sich um den Ajax-Teil des Codes? Bei der Überprüfung mit F12

stimmt es aber
<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>

Antwortinhalt:

Nach der Übermittlung empfängt der Hintergrund Daten über $name=I('name') und $pw=I('pw'), aber nachdem das Echo ausgegeben wurde, wird undefiniert angezeigt. Der zurückgegebene Wert ist immer 0. Handelt es sich um den Ajax-Teil des Codes? Bei der Überprüfung mit F12

stimmt es aber
<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>

Probieren Sie diese beiden Daten aus und schauen Sie nach. Wenn die Objektzuordnung nicht gefunden wird, ist sie undefiniert;

undefiniert muss ein JS-Problem sein, bitte posten Sie den detaillierten Fehler

Überprüfen Sie die Daten im eingereichten Formular

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

<code>  你这个地方只是把值传进去了,没有定义 name,pw.</code>
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn