AJAX:传递多个数据

时间:2014-07-23 01:23:44

标签: jquery ajax

您好我在通过POST传递多个数据时遇到问题,隐藏类型也无法获取ID。

$(document).ready(function() {

 //##### Add record when Add Record Button is click #########
$("#FormSubmit").click(function (e) {
e.preventDefault();
if($("#contentText").val()==='')
{
  alert("Please enter some text!");
  return false;
}

if($("#guestName").val()==='')
{
  alert("Please enter text!");
  return false;
}

var content = 'content_txt='+ $("#contentText").val(); //build a post data structure
var guest = 'guest_name='+ $("#guestName").val();
var article = 'article_id=' + $("#articleID").val();
jQuery.ajax({
type: "POST", // Post / Get method
url: "<?php echo site_url('article/create_comment/'); ?>", //Where form data is sent on submission
dataType:"text", // Data type, HTML, json etc.
data: "content_txt=" + content + "&guest_name=" + guest + "&article_id=" + article, //Form variables
success:function(response){
  $("#responds").append(response);
},
error:function (xhr, ajaxOptions, thrownError){
  alert(thrownError);
}
});
});

});

当我运行时,我得到结果:

guest_name = ttata -

content_txt = tatata

而不是ttata和内容tatata

4 个答案:

答案 0 :(得分:0)

您是否考虑过发送FormData而不是手动构建数据格式?对不起,我无法发表评论,所以如果您提出不同的问题,我会道歉。

e.g。

$("#FormSubmit").click(function (e) {
    e.preventDefault();

    var formData = new FormData(document.forms.namedItem([form-name-here]);

    var request = new XMLHttpRequest();
    request.open("POST", ["your-action-here"], true);

    request.onload = function(e){
        if(request.status == 200){
            alert("Success!");
        } else {
            alert("Bummer!");
        }
    }
 }

答案 1 :(得分:0)

这一行

var content = 'content_txt='+ $("#contentText").val();

评估为&#34; content_txt = ttata&#34;。然后

data: "content_txt=" + content + ...

评估为

"content_txt=content_txt=ttata"

所以要么使用

var content = $("#contentText").val();

data: content + ...

答案 2 :(得分:0)

以下是您定义变量的方式:

var content = 'content_txt='+ $("#contentText").val(); 
......

然后在您的Ajax调用中,您将如何将数据放在一起:

data: "content_txt=" + content  + '&.....'

那张照片出了什么问题?

答案 3 :(得分:0)

您可以尝试将数据作为JSON发送。只需添加dataType参数:&#34; JSON&#34;然后将您的数据作为JSON对象传递,如此......

{content_text:content,guest_name:guest,art​​icle_id:article}