2013-03-21 156 views
4

我有一個基本的登錄表單設置,我發送兩個變量(登錄+密碼)使用ajax請求到不同的頁面,檢查並返回相應的狀態。我的ajax代碼

$('form.login_form').on('submit', function(){ 
    var that = $(this), 
    url = "textlogin.php", 
    type = that.attr('method'), 
    data = {}; 

    that.find('[name]').each(function(index, value){ 
     var that = $(this), 
     name = that.attr('name'), 
     value = that.val(); 
     data[name] = value; 
    }); 

    $.ajax({ 
     url: url, 
     type: type, 
     data: data, 

     success: function(response){ 
      if(response==""){ 
       $('#login_err').html("its null"); 
      }else{ 
       $('#login_err').html(response); 
      } 
     } 
    }); 
    return false; 
}); 

不工作,並且success函數總是返回null。該代碼,直到我沒有使用ajaxjquery dialog日誌工作正常 東西,我試過: 1.設置Content-type 2.設置dataType 3.使用.post的$,什麼不可以。

+0

使用新版瀏覽器,例如Firefox或Chrome,你應該遵守的開發工具,以確定請求/響應是否如你所願。 – juco 2013-03-21 11:30:46

+0

您可以使用簡單的var data = that.serializeArray()獲取表單數據,不需要手動循環字段。另外,請檢查瀏覽器控制檯以驗證帖子和回覆。 – cernunnos 2013-03-21 11:36:26

+1

也嘗試過這樣做。 – 2013-03-21 11:41:35

回答

0

以下是Ajax的示例代碼。

$.ajax({ 
     url: "login.php?", 
     data:"username="+username+"&password="+password, 
     success: function(data) 
     { 
     } 
}); 

請試試這個。

如果你使用的是Mozilla Firefox,那麼請安裝firebug add。安裝螢火蟲後打開它。現在你可以找到控制檯tab.make它啓用。現在,當你運行一個Ajax時,你可以在這裏看到。

假設你直接傳遞數組,那麼更好的方法是在php中使用implode函數,所以使用這個函數。

請給我答覆,如果它的工作。

0

您需要指定數據類型。我希望這將有助於你

function a() 
{ 
    var ip=new Object(); 
ip.name=value; 
var data=JSON.stringify(ip); 

    $.ajax({ 
      url: "http://127.0.0.1/file.php", 
      data:data, 
      dataType:"json", 
      success: function(data) 
      { 
      } 
    }); 

}  
+1

不需要將'dataType'指定爲'jaspon',因爲$ .ajax自己處理它。我的問題是解決隊友。感謝您的支持。 – 2013-03-21 13:25:58