2012-05-24 61 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