jquery ajax不使用数据字段

时间:2012-02-24 21:40:20

标签: php ajax jquery

当我提交没有数据值的jquery ajax请求时,它可以工作,当我提交数据值时,没有任何反应。我检查它是否使用firebug工作。我认为这是一个简单的错误,但我似乎无法弄明白。请帮助。

这是Jquery代码

var inputString = $("something").val();
var suggestions = $.ajax({
    url: "temp.php",
    type: "POST",
    data: {valueInput : inputString},
    dataType: "html"
});

temp.php只是有一些简单的代码,因为我正在测试:

    echo "We got sumn here";

另一件事是建议变量是空的,有什么想法吗?

4 个答案:

答案 0 :(得分:4)

您可以尝试:

    data: 'valueInput=' + encodeURIComponent(inputString),

更新

suggestions被设置为从$.ajax()函数返回的jqXHR对象。如果您想在服务器响应上工作,那么您需要以某种方式设置success回调。这有两种方式:

var inputString = $("something").val();
$.ajax({
    url      : "temp.php",
    type     : "POST",
    data     : 'valueInput=' + encodeURIComponent(inputString),
    dataType : "html",
    success  : function (serverResponse) {
        //you can now do work on the server-response, it's stored in the serverResponse variable
        alert(serverResponse);
    }
});

OR

var inputString = $("something").val(),
    suggestions = $.ajax({
    url      : "temp.php",
    type     : "POST",
    data     : 'valueInput=' + encodeURIComponent(inputString),
    dataType : "html"
});
$.when(suggestions).then(function () {
    //this is your callback function
});

我建议使用第一种方法,第二种方法更先进,如果你想在做某事之前等待一组AJAX请求完成,那么它真的很有帮助。

答案 1 :(得分:1)

valueInput应该是引号,因为它是一个名称。 'valueInput'

var inputString = $("something").val();
var suggestions = $.ajax({
    url: "temp.php",
    type: "POST",
    data: {'valueInput': inputString},
    dataType: "html"
});

答案 2 :(得分:1)

您需要以查询字符串的形式传递数据。它应该是a = 1& b = 2& c = 3& d = 4& e = 5

您可以对选择了表单元素或表单标记的jQuery对象使用.serialize()方法。所以,也许这段代码会有所帮助。

var suggestions = $.ajax({
    url: "temp.php",
    type: "POST",
    data: $("something").serialize(),
    dataType: "html"
});

答案 3 :(得分:0)

你可以尝试

data:JSON.stringify({'valueInput':inputString}),

在您的数据参数中。