我正在尝试将我的数据添加到div中,但它无法正常工作。 PHP是好的,但我需要一个很好的眼睛,看看他们是否可以发现任何错误或可以建议任何工作,以帮助弄清楚为什么它不工作。
我试图在过去的5个小时左右修理它并绞尽脑汁。
用户对post等状态进行评论,并假设将其添加到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);
答案 0 :(得分:1)
我建议使用某种模板系统来完成组装内容的所有艰苦工作。
查看Create a makeshift Javascript templating或John Resig's解决方案。
在html()
内构建那个标记字符串有点粗糙。
您还有第一个div
的内联显示样式:无,因此您将看不到它。
您是否尝试过关闭此功能以查看是否有任何内容填充
success: function(data){
$('#containerid').html('blurb');
}
答案 1 :(得分: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;"
。