首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不从AJAX打印结果

不从AJAX打印结果
EN

Stack Overflow用户
提问于 2008-12-21 05:58:50
回答 2查看 3.4K关注 0票数 1

我正在编写一个脚本,用于将数据发送到mysql表中,并且运行正常,但调用的成功部分没有将我的结果加载到我的页面上的结果列中。我的代码如下。

对我能做些什么来解决这个问题有什么建议?我猜问题出在我的AJAX调用中的"success:“选项中。

代码语言:javascript
复制
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Facebook like ajax post - jQuery - ryancoughlin.com</title>
<link rel="stylesheet" href="css/screen.css" type="text/css" media="screen, projection" />
<link rel="stylesheet" href="css/print.css" type="text/css" media="print" />
<!--[if IE]><link rel="stylesheet" href="css/ie.css" type="text/css" media="screen, projection"><![endif]-->
<script src="js/jquery.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
/* <![CDATA[ */
$(document).ready(function(){

    $('p.validate').hide();

    $.getJSON("readJSON.php",function(data){
        $.each(data.posts, function(i,post){
            content = '<div id="post-'+ post.id +'">\n';
            content += '<h3>' + post.author + '</h3>\n';
            content += '<p class="small quiet">' + post.date_added + '</p>\n';
            content += '<p>' + post.post_content + '</p>';
            content += '<hr/>';
            $("#contents").append(content).fadeIn("slow");      
        });
    });  
    $(".reload").click(function() { 
        $("#posts").empty();
    });

    $("#add_post").submit(function() {
        $('p.validate').empty();
        // we want to store the values from the form input box, then send via ajax below
        var author = $('#author').attr('value');
        var post   = $('#post').attr('value'); 

        if(($('#author').val() == "") && ($('#post').val() == "")){
            $("p.validate").fadeIn().append("Both fields are required.");
            $('#author,#post').fadeIn().addClass("error");
        }else{
            $.ajax({
                type: "POST",
                url: "ajax.php",
                data: "author="+ author + "&post=" + post,
                success: function(result){
                    $('#contents').after( "<div>" +result +"</div>" );
                }
            });

        }
        return false;
    });

});
/* ]]> */
</script>
<style type="text/css">
h3{margin:10px 0;}
p{margin:5px 0;}
#posts{display:none;}
</style>
</head>
<body>
        <div class="container">
                <div class="span-24">
                        <div id="post-container" class="span-9 colborder">
                                <h2>Posts loaded via Ajax:</h2>
                                <div id="contents"></div>   
                        </div>
                        <div id="form" class="span-11">
                            <h2>New Post:</h2>

                            <form name="add_post" id="add_post" action="">
                                <label>Author:</label><br />
                                <input type="text" name="author" id="author" size="15" class="text" /><br />
                                <label>Post:</label><br />
                                <textarea name="post" id="post" rows="5" cols="5" class="text"></textarea><br />
                                <input type="submit" value="Post" id="submit" /><br />
                            </form><br />
                            <p class="validate error"></p>

                        </div>  
                </div>
                <div class="span-24">
                    <a href="#" class="reload">Reload</a>
                </div>
        </div>
</body>
</html>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2008-12-21 07:57:20

要问自己的问题。

  1. jQuery是否运行成功回调?
  2. 如果运行,响应数据的标记格式是否正确?

首先,我会在成功函数中添加一个"debugger;“语句(假设您有firefox和firebug)。这将使您能够进入脚本控制台,并更好地了解正在发生的事情。

调试器语句将导致脚本执行暂停并中断到firebug控制台。请尝试以下操作

代码语言:javascript
复制
  success: function(result){
             debugger;
             $('#contents').after( "<div>" +result +"</div>" );
           }

如果您的脚本遇到这个问题,我怀疑您的响应标记格式不正确,jQuery在解析到div时出现问题,但是当您在firebug中断点时,您可以检查所有这些。

在调试过程中另一件容易检查和忽略的事情是

  1. 您的web服务器是否提供有效的(状态200)响应(请查看firebug中的控制台或网络选项卡,或者如果在ie中运行,则使用

之类的工具)。

让我知道你的进展如何。

票数 1
EN

Stack Overflow用户

发布于 2008-12-21 06:05:08

尝试使用错误设置将调试语句添加到ajax调用时,可能会出现错误

代码语言:javascript
复制
$.ajax({
                        type: "POST",
                        url: "ajax.php",
                        data: "author="+ author + "&post=" + post,

                        error: function(XMLHttpRequest, textStatus, errorThrown) 
                        { alert(errorThrown); },

                        success: function(result){
                        $('#contents').after( "<div>" +result +"</div>" );
                        }
                });
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/384157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档