Heim >Backend-Entwicklung >PHP-Tutorial >javascript - Was ist an dieser Methode zur Übermittlung von Beiträgen falsch?

javascript - Was ist an dieser Methode zur Übermittlung von Beiträgen falsch?

WBOY
WBOYOriginal
2016-08-18 09:15:491252Durchsuche

Die Daten können nach der Übermittlung nicht eingefügt werden. Liegt es daran, dass ich sie in Ajax geschrieben habe?
tt.php

<code><!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        function ajax(url,data,funsucc){
            var oAjax=new XMLHttpRequest();
            oAjax.open('POST',url,true);                   
            oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
            oAjax.send("aa="+data);    
            oAjax.onreadystatechange=function(){
              if(oAjax.readyState==4){
                if(oAjax.status==200){
                  funsucc(oAjax.responseText);
                }
             }
           }
        }
    </script>
    <script type="text/javascript">
        window.onload=function(){
            var oTxt=document.getElementById('txt1');
            var oBtn=document.getElementById('btn1');
            oBtn.onclick=function(){
                ajax("ajax.php",oTxt.value,function(){
                    window.location.reload();
                });
            }
        }
    </script>
</head>
<body>
<form method="post">
    <input type="text" id="txt1">
    <button id="btn1" type="submit">提交</button>
</form>
</body>
</html></code>

ajax.php

<code><?php
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
$txt=$_POST["aa"];      
$stmt=$pdo->prepare("insert into ajax(txt)values(?)");
$stmt->execute(array($txt));
?></code>

Antwortinhalt:

Die Daten können nach der Übermittlung nicht eingefügt werden. Liegt es daran, dass ich sie in Ajax geschrieben habe?
tt.php

<code><!DOCTYPE html>
<html>
<head>
    <title></title>
    <script type="text/javascript">
        function ajax(url,data,funsucc){
            var oAjax=new XMLHttpRequest();
            oAjax.open('POST',url,true);                   
            oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
            oAjax.send("aa="+data);    
            oAjax.onreadystatechange=function(){
              if(oAjax.readyState==4){
                if(oAjax.status==200){
                  funsucc(oAjax.responseText);
                }
             }
           }
        }
    </script>
    <script type="text/javascript">
        window.onload=function(){
            var oTxt=document.getElementById('txt1');
            var oBtn=document.getElementById('btn1');
            oBtn.onclick=function(){
                ajax("ajax.php",oTxt.value,function(){
                    window.location.reload();
                });
            }
        }
    </script>
</head>
<body>
<form method="post">
    <input type="text" id="txt1">
    <button id="btn1" type="submit">提交</button>
</form>
</body>
</html></code>

ajax.php

<code><?php
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
$txt=$_POST["aa"];      
$stmt=$pdo->prepare("insert into ajax(txt)values(?)");
$stmt->execute(array($txt));
?></code>

1. Durch Klicken auf die Schaltfläche „Senden“ wird standardmäßig das Ereignis „onsubmit“ ausgelöst, aber das daran gebundene Ereignis „onclick“ bricht das Standardereignis nicht ab

<code>oBtn.onclick=function(e){
    var e=window.event||e;
    e.preventDefault&&e.preventDefault();
    e.returnValue&&e.returnValue=false;
}</code>
2. Verwenden Sie die Standardeinstellung „onsubmit“, ignorieren Sie Ajax und fügen Sie name="aa" zu txt1 hinzu

<code>function ajax(url,data,funsucc){
            var oAjax=new XMLHttpRequest();
            oAjax.open('POST',url,true);                   
            oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");
            oAjax.send("aa="+data);//在这里打个断点看看
            oAjax.onreadystatechange=function(){
              if(oAjax.readyState==4){
                if(oAjax.status==200){
                  funsucc(oAjax.responseText);
                }
             }
           }
        }</code>
Ändern Sie die Ajax-Funktion wie folgt:

Asynchroner Aufruf, sonst können die Daten nicht gesendet werden
<code>function ajax(url,data,funsucc){
            var oAjax=new XMLHttpRequest();
            oAjax.open('POST',url,true);                   
            oAjax.setRequestHeader("Content-Type","application/x-www-form-urlencoded;charset=UTF-8");          
            oAjax.onreadystatechange=function(){
              if(oAjax.readyState==4){
                if(oAjax.status==200){
                  funsucc(oAjax.responseText);
                }
             }
           }
              oAjax.send("aa="+data);   
        }</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