ajax调用没有响应$ .post

时间:2012-08-22 13:39:21

标签: ajax jquery

我想要做的是通过jquery选择获取所选元素的值。之后,这些值通过ajax发布到php脚本,然后从数据库中检索数据并将其显示在同一页面上(称为autocompete)。

var marvalue=$("input[name=m_status]:checked").val();
var fromhvalue=$("#fromheight").val();
var tohvalue=$("#toheight").val();
var value = $("#edu_det1").val();
alert (value);
var regvalue = $("#religion").val();
alert (regvalue);
var occvalue = $("#occupation").val();
alert (occvalue);
var convalue = $("#country").val();
alert (convalue);

警告可以检查正确的值。如您所见,上面的代码将获取不同输入元素的值。 下面是我用来发布到php的代码

/*                              
$.post("regsearch.php", {queryString: ""+value+"",queryString1: ""+marvalue+"",queryStringfage: ""+fage+"",queryStringtage: ""+tage+""+queryStringfromh: ""+fromhvalue+""+queryStringtoh: ""+tohvalue+""+}, function(data) { // Do an AJAX call
            $('#suggestions').fadeIn(); // Show the suggestions box
            $('#suggestions').html(data); // Fill the suggestions box
        });
                                        */

问题

删除注释时,也不会弹出警告,也不会显示结果。好的结果是没有发布查询。
主要的一部分是,当我使用下面的代码时,它仅包含m_statusedu_det1

marvalue=$("input[name=m_status]:checked").val();
alert (marvalue);

var value = $("#edu_det1").val();

alert (value); 

上面的邮政编码是

$.post("regsearch.php", {
    queryString: ""+value+"",
    queryString1: ""+marvalue+"",
    queryStringfage: ""+fage+"",queryStringtage: ""+tage+""
}, function(data) {
    // Do an AJAX call
    $('#suggestions').fadeIn(); // Show the suggestions box
    $('#suggestions').html(data); // Fill the suggestions box
});

此处未添加年龄代码及其验证。有什么问题以及如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

首先,你应该使用你的控制台来查看Javascript错误,因为我确信这会产生一些错误。例如,查询字符串未定义。

我也是console.log而不是警报,它不那么烦人且信息量更大。

然后:你不需要使用f.e. “”+ marvalue +“” - 只需使用marvalue。另一方面f.e. queryString应该引用...

$.post("regsearch.php", {'queryString':value,'queryString1': marvalue,'queryStringfage':fage,'queryStringtage':tage,'queryStringfromh': fromhvalue,'queryStringtoh':tohvalue}, function(data) { 
            $('#suggestions').fadeIn();
            $('#suggestions').html(data);
});

答案 1 :(得分:0)

如果使用jquery serialize()函数会更好。这将使您的生活更容易使用表单。

var querstring = $(form).serialize();

以上将有所帮助

答案 2 :(得分:0)

我想使用ajax post jQuery.ajax()会做同样的事情,你甚至可以序列化页面中的字段。

http://api.jquery.com/jQuery.ajax/#jQuery-ajax-settings

我做过类似的代码

UserName是我传递的字段

        var data = $('#Username').serialize();
        $('#usernameCheck').empty();

        if (!$("form").validate().element("#Username"))
            return;

        $.ajax({
            url: '/SignUp/CheckUsername',
            type: 'POST',
            data: data,
            async: true,
            success: function (result) {
                if (result == 1) {

                    $('#usernameCheck').html('<font color=green>Username available</font>');
                    usernameOK = true;
                }
                else if (result == 2) {

                    $('#usernameCheck').html('<font color=red>Username not available</font>');
                    usernameOK = false;
                }
                else {
                    $('#usernameCheck').empty();
                    usernameOK = false;
                }

            }
        });