如何使用/组合使用两种不同数据类型的2个jquery脚本

时间:2009-05-22 19:57:33

标签: jquery

托马斯一直在帮助我解决这个问题,我认为我们取得了一些实际进展。这是修改后的代码。这应该是首先,取我的查询字符串并将其传递到数据库中解析和插入数据的服务器。当类方法返回成功时,JQ函数应该使用来自服务器的消息回显100%css样式的div(id = message)。它也可以返回失败消息。这条消息是导入的?与json。我可以在FF控制台中看到该消息,但我在浏览器中看不到该消息。

我遇到的另一个问题是页面上的每个div都附加了id =消息。

编辑:

$.ajax({
    type: "POST",
    url: "body.php?action=admCust",
    data: dataString,
    success: function(data){
        $('#admCust input[type=text]').val('');
        var div = $('<div>').attr('id', 'message').html(data.message);
        if(data.success == 0) {
            $(div).addClass('error');
        } else {
            $(div).addClass('success');
        }
        $('body').append(div);
        $(div).show();
      }
});
return false;

2 个答案:

答案 0 :(得分:0)

尝试使用此代码(因为它最后有return false;我假设这是在提交函数或其他内容中,而dataString正在从其他地方填充....):

$.ajax({
    type: "POST",
    url: "body.php?action=admCust",
    data: dataString,
    dataType: 'json',
    success: function(data){
        $('#admCust input[type=text]').val('');
        var div = $('<div>').attr('id', 'message').html(data.message);
        if(data.success == 0) {
            $(div).addClass('error');
        } else {
            $(div).addClass('success');
        }
        $('body').append(div);
      }
});
return false;

你最大的错误是你忘了指定dataType(我在我的例子中有...)所以jQuery不知道服务器将返回什么格式。它只是假设它是一个字符串而不是JSON对象,因此您的data变量未正确填充。您也不需要show()因为附加就足够了。

我测试了上面的内容并且它有效,假设再次在其他地方填充dataString并且body.php返回一个带有消息和成功代码的有效JSON字符串。

答案 1 :(得分:-1)

不确定这是否是你所追求的,但是当我理解你的问题时,请执行以下操作:

$(function() {
    $('.error').hide();
    $(".admCustBtn").click(function() {
        $('.error').hide();
        var admCustRPSecPhone = $("input#admCustRPSecPhone").val();
        var dataString = '&admCustRptSumm='+ admCustRptSumm + '&admCustRptDtl='+ admCustRptDtl;
        $.ajax({
            type: "POST",
            url: "index.php",
            data: dataString,

            // add an input parameter named data
            success: function(data){
                $('#admCust input[type=text]').val('');

                // remove the alert box
                // alert( "Success! Data Saved");

                // add the success handling code from the other method
                var div = $('#message').attr('id', 'message').html(data.message);
                if(data.success == 0) {
                    $(div).addClass('error');
                } else {
                    $(div).addClass('success');
                }
                $(div).show();
              }
        });
        return false;
    });
});

编辑:将$div重命名为div,并将选择器从'div'更改为'<div>'

EDIT2:修改了选择器(在html中添加了id="message"!),在$()变量周围添加了div - 包装,并将.append()行更改为.show()命令。