2013-02-13 3 views
0

После того, как я нажму кнопку, я получаю следующее предупреждение, и форма дублируется. Любая ошибка в коде?ajax form error

http://divran.com/s/upload/images/fso5xclhcdpbwamj153s.gif

  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
      <html xmlns="http://www.w3.org/1999/xhtml"> 
      <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=windows-1254" /> 
      <script src="jquery-ui-1.10.0.custom/jquery-1.9.1.min.js" type="text/javascript"></script> 
      <title>jquery AJAX</title> 
      <script language="javascript"> 
       $(document).ready(function(){ 
          var name = $("#name").val(); 
          var sname = $("#sname").val(); 
          var email = $("#email").val(); 

         $("#b1").click(function(){   
          $.ajax({ 
           type :"POST", 
           URL  :"save.php", 
           data :"name="+name+"&sname="+sname+"&email="+email, 
           dataType:"text", 
           success :function (data, textStatus, jqXHR) {       
              if (data == 'success'){ 
               $("#res").html("sonuc :"+data); 
              }else{ 
               $("#res").html(data +":"+textStatus+":"+jqXHR); 
               } 
           } 
          });    
         }); 
        }); 

      </script> 
      </head> 
      <body> 
      <input type="text" id="name"/><br /> 
      <input type="text" id="sname"/><br /> 
      <input type="text" id="email"/><br /> 
      <button id="b1">send</button> 
      <div id="res"></div> 
      </body> 
      </html> 

ответ

0

Это делает именно то, что он должен делать. Ошибка в этой части:

success :function (data, textStatus, jqXHR) {       
    if (data == 'success'){ 
     $("#res").html("sonuc :"+data); 
    }else{ 
     $("#res").html(data +":"+textStatus+":"+jqXHR); 
    } 
} 

Этот обратный вызов вызывается всякий раз, когда вызов AJAX был успешным, но тогда вы проверить, если ключ data равен success, что она не является и, следовательно, положение еще теперь срабатывает (как можно увидеть на скриншоте). Я считаю, что то, что вы пытаетесь проверить, - это то, что textStatus был успешным. Так, заменить:

if (data == 'success'){ 

с этим:

if (textStatus == 'success') { 

И вы должны получить sonuc : следуют данные в качестве результата.

Пожалуйста, обратите внимание, что всех если/другой на самом деле не полезно, хотя, так как это уже success обратный вызов, который возвращается только когда запрос AJAX был успешный. Вы можете поставить это:

$("#res").html(data +":"+textStatus+":"+jqXHR); 

В обратном вызове ошибки, так что вы получите:

success: function (data, textStatus, jqXHR) {       
    $("#res").html("sonuc :"+data); 
}, 
error: function (jqXHR, textStatus, errorThrown) { 
    $("#res").html(data +":"+textStatus+":"+jqXHR); 
} 
+0

я это сделал, как вы сказали, но, когда я нажал кнопку это воссоздать форму, как вы видите obove изображения , он работает неправильно. я не могу выполнить обратный вызов –