0

我正在尝试将我的数据添加到 div 中,但它不起作用。php 很好,但我需要细心看看他们是否能发现任何错误或建议任何变通方法来帮助找出它为什么不起作用。

在过去 5 个小时左右的时间里,我一直试图修复它,这让我绞尽脑汁。

用户评论状态,如帖子,并假设将其添加到 div。就像我的主要状态一样。主要状态的 ajax 几乎与下面的评论 ajax 相同..但是评论 ahax 玩得不好,根本没有插入任何数据。

<script>
$(document).ready(function(){
    $("form#mycommentform").submit(function() {
        var streamidcontent = $('#streamidcontent').val();
        var contents = $(this).children('#contents').val();

        $.ajax({
            type: "POST",
            url: "comment_add.php",
            cache: false,
            dataType: "json",
            data: { streamidcontent: streamidcontent, contents: contents}, 
            success: function(data){  
                $('#containerid').html('<div class="stream_comment_holder" style="display:none;"
                id="comment_holder_'+data['comment_streamitem']+'"><div
                id="comment_list_'+data['comment_streamitem']+'"><div
                id="tgy"></div><div class="stream_comment"
                id="comment_'+data['comment_id']+'" style="margin-top:0px;"><table
                width=100%><tr><td valign=top width=30px><img
                class="stream_profileimage"
                style="border:none;padding:0px;display:inline;" border=\"0\"
                src=\"imgs/cropped'+data['id']+'.jpg\"
                onerror="this.src=\"img/no_profile_img.jpeg\"" width=\"40\"
                height=\"40\" ></a><td valign=top align=left><a
                href="/profile.php?username='+data['username']+'">'+data['first']+'</a><div
                class="commentholder">'+data['first']+'</div><br/><div
                id="commentactivitycontainer"></div></div></table></div></div><div
                class="form"><form id="mycommentform" method="POST" 
                class="form_statusinput"><input type="hidden"  name="streamidcontent"
                id="streamidcontent" value="'+data['comment_streamitem']+'"><input
                type="text" name"contents" id="contents" placeholder="Say something"
                autocomplete="off"><input type="submit" id="button"
                value="Feed"></form></div><div class="stream_comment_holder"
                style="display:;"><div class="like_name"><b><a
                href="profile.php?username='+data['username']+'">You Like
                This</a></b></div></div>');
            }
        });
        return false
    });
});
</script>

发现错误

success: function (data) {
    alert("SUCCESS!!!");
},
error: function (xhr, ajaxOptions, thrownError) {
    alert(xhr.statusText);
    alert(xhr.status);
    alert(thrownError);
}

OK
200
SyntaxError.JSONparse:Unexpectedcharacter

JSON

$json = array();
$check = "SELECT comment_id, comment_datetime, comment_streamitem FROM streamdata_comments WHERE comment_streamitem=".$_POST['streamidcontent']."";
$check1 = mysqli_query($mysqli,$check);
$resultArr = mysqli_fetch_array($check1);
$json['comment_id'] = $resultArr['comment_id'];
$json['comment_streamitem'] = $resultArr['comment_streamitem'];
mysqli_free_result($check1);

$check = "SELECT * FROM users WHERE id=".$_SESSION['id']."";
$check1 = mysqli_query($mysqli,$check);
$resultArr = mysqli_fetch_array($check1);
$json['username'] = $resultArr['username'];
$json['id'] = $resultArr['id'];
$json['first'] = $resultArr['first'];
$json['middle'] = $resultArr['middle'];
$json['last'] = $resultArr['last'];
mysqli_free_result($check1);

echo json_encode($json);
4

2 回答 2

1

我建议使用某种模板系统来完成所有艰苦的工作来组装您的内容。

查看创建临时 Javascript 模板John Resig 的解决方案。

在内部构建那串标记html()有点粗糙。

您还有一个 display:none 的内联样式在 first 上div,所以您不会看到它。

您是否尝试过剥离该功能只是为了查看是否填充了任何内容

success: function(data){  
   $('#containerid').html('blurb');
}
于 2012-08-26T22:50:23.797 回答
0

我不知道这是否是唯一的问题,但是您尝试在您正在创建的 html 属性中嵌入引号,例如:

'onerror="this.src=\"img/no_profile_img.jpeg\""'

它将产生这个无效的字符串:

onerror="this.src="img/no_profile_img.jpeg""

您应该嵌入单引号,如下所示:

'onerror="this.src=\'img/no_profile_img.jpeg\'"'

这会产生:

onerror="this.src='img/no_profile_img.jpeg'"

此外,大约在倒数第六行,您有一个缺少=符号的属性:

name"contents"

你插入的最外层 div 有style="display:none;".

于 2012-08-26T22:48:41.883 回答