首页 文章

如何使用ajax返回值

提问于
浏览
2

我有Ajax文件,其中编写的代码接受用户的值,然后这些值在Ajax函数中获取,如下所示:

$(document).ready(function(){  
            $("#newsletterform").validate();  
            $('#Submit').click(function(){  
                var name = $('#newsletter_name').val();  
                var email = $('#newsletter_email').val();  
                 sendValue(email,name);  
            });  
            });

传递值和从其他文件获取值的函数:

function sendValue(str,name){  
                $.post(  
                "newsletter/subscribe.php", //Ajax file  
                { sendValue: str,  
                  sendVal: name  
                },  
                function(data2){  
                    $('#display').html(data2.returnValue);  
                },  

    //How you want the data formated when it is returned from the server.
                "json"  
                );  
            }

并将这些值传递给名为“subscribe.php”的另一个文件,其中写入数据库的插入代码,并再次将值返回到我的第一个ajax函数,如下所示:

echo json_encode(array("returnValue"=>$msg));  
The msg is ging to contain my message to be displayed.

但是现在,这在localhost上运行正常,我得到正确的返回值nad消息但是当我在服务器上传它时,这给了我一个错误:

data2 is null
[Break on this error] $('#display').html(data2.returnValue);

这只会给返回值带来错误,但插入,发送邮件功能正常 .
请给我一个很好的解决方案,我可以在没有任何错误的情况下取回返回值 .
提前致谢 .

4 回答

  • 1

    如果它适用于您的开发站点,我怀疑您的PHP脚本中存在错误 . 你的主机可能运行一个没有json_encode()的古老php版本 . 只需手动调用脚本即可检查其输出 . 如果它需要POST,您可以写一个表单或使用FireBug检查结果到您的ajax调用

  • -2

    使用:

    var response = $.ajax({
       type : "POST",
       url : "newsletter/subscribe.php",
       dataType : "json",
       async : false,
       data : "sendValue="+str+"&sendVal="+name
    }).responseText;
    
  • 0

    如果没有其他解释,为什么会这样,请尝试这样做:

    $(document).ready(function(){  
            $("#newsletterform").validate();  
            $('#Submit').click(function(e){  // added the e paramenter
                var name = $('#newsletter_name').val();  
                var email = $('#newsletter_email').val();  
                 sendValue(email,name);
                e.stop(); // dont submit the form normaly
            });  
    });
    
  • 0

    如果你有firebug,请将data2写入其控制台并查看它是什么:

    function(data2) {  
        console.log(data2);
        $('#display').html(data2.returnValue);  
    }
    

    此外,你可以使用firebug网络面板来查看你的php文件原始响应(如果它有错误 - 你会在那里看到它) .

相关问题