2012-05-24 68 views
4

我目前正在創建一個網站,並且無法使用AJAX發佈我的數據。我有一個按鈕,按下時,下面的代碼被處理......Ajax post方法不起作用

var name = document.getElementById('name').innerHTML; 
var text = document.getElementById('text').innerHTML; 

$.ajax({ 
    type: "POST", 
    url: "php/post.php", 
    data: { postName: name, postText: text}, 
    success: function() { 
     $('#paragraph').html("worked");  
    } 
}); 

這無疑打開post.php中頁,但它不是通過所需要的數據。難道我做錯了什麼?

在此先感謝

+1

這些ID是'name'和'text'屬於什麼?一個文本框?如果是,那麼你應該使用'.value'或$('#name')。val()' –

+0

post.php中有什麼? – jimbojw

回答

6

變量名稱和文本包含什麼?而不是做

var name = document.getElementById('name').innerHTML; 
var text = document.getElementById('text').innerHTML; 

你可以這樣做:

var name = $("#name").val(); 
var text = $("#text").val(); 

您可能需要傳遞的數據類型的對象太:

$.ajax({ 
type: "POST", 
url: "php/post.php", 
data: { postName: name, postText: text}, 
dataType: "json", 
success: function() { 
    $('#paragraph').html("worked");  
} 
}); 
+1

dataType是不需要發送,OPs的問題是他無法發送數據 – mprabhat

+0

dataType是需要接收不發送, – Shyju

+0

確定更改爲.val()似乎解決它,現在數據是正在被正確處理。非常感謝您的幫助:) – Phil

0

我猜你不會阻止默認按鈕點擊行爲。可能您應該使用按鈕單擊上的preventDefault函數來停止處理默認表單發佈。另外,還要確保你有你的存在的表單元素裏面的內容與標識nametext

$(function(){ 

    $("#yourButtonId").click(function(e){ 
    { 
     e.preventDefault(); 
     var name = $('#name').html(); 
     var text = $('#text').html(); 

     if(name!="") 
     {  
     $.ajax({ 
      type: "POST", 
      url: "php/post.php", 
      data: { postName: name, postText: text}, 
      success: function() { 
       $('#paragraph').html("worked");  
      } 
     }); 
     } 
     else 
     { 
     alert("Why should i do ajax when content is empty!"); 
     } 
    }); 

}); 
4
var name = $('#name').text(); 
var text = $('#text').text(); 

$.ajax({ 
    type: "POST", 
    url: "php/post.php", 
    data: { postName: name, postText: text}, 
    dataType: 'json', 
    success: function() { 
    $('#paragraph').html("worked");  
    } 
}); 
+1

'.html()'相當於'innerHTML' - >'.text()'將剝離掉所有的標記。 –

0
var name = document.getElementById('name').value, 
    text = document.getElementById('text').value, 
    postData = JSON.stringify({ postName: name, postText: text}); 
$.ajax({ 
    type: "POST", 
    url: "php/post.php", 
    data: postData, 
    success: function() { 
     $('#paragraph').html("worked");  
    } 
}); 

您將需要包括這json2.js參考舊的瀏覽器工作。你可以在這裏下載:https://github.com/douglascrockford/JSON-js

+0

'jsonStringify'是錯誤的,它應該'JSON.stringify()' – thecodeparadox