我确定问题很简单,我只是无知,无法弄清楚。
我的网站上有一个个人资料提要,它允许用户使用 jquery 的 ajax 功能发布一个立即出现的状态。
当尝试发布 jquery 所说的错误时,新发布行的整个 html 是语法错误。但是,如果我删除所有 html 并且只显示实际帖子的文本而不是 html,它仍然会给我错误。
这是javascript:
$('body').on('click','.submit_feed',function () {
var post = $("#feed_content").val();
var hidden_id = $("#hidden").val();
$("#loading").fadeIn("slow");
if( content.length < 4)
{
$.ajax({
url: "http://localhost/matthew/xaos/users/ajax/feed",
type: "POST",
data: {
parent: hidden_id,
content:post
},
cache: false,
success: function (data) {
$('#feed_error').html($(data).hide().fadeIn('slow'));
$("#loading").fadeOut("slow");
}
});
$("#loading").fadeOut("slow");
}
else
{
$('#feed_error').remove();
$.ajax({
url: "http://localhost/matthew/xaos/users/ajax/feed",
type: "POST",
data: {
parent: hidden_id,
content:post
},
cache: false,
success: function (data) {
$('#feed').prepend($(data).hide().fadeIn('slow'));
$("#loading").fadeOut("slow");
$("input[type='text']").val('');
}
});
}
return false;
});
正如您所看到的,它请求与 users/ajax/feed 交互,这是将数据插入数据库并返回 html 的原因。
这是我使用的 php:
$return['user'] = user_lib::find_user($this->user['user_id']);
$return['content'] = $this->input['content'];
if( isset( $this->input['content'] ) )
{
if( strlen( trim( $this->input['content'] ) ) < 4 )
{
print '<h6>Post must be more than 4 characters</h6>';
exit();
}
$previous_feed = $this->db->fetch_row("select feed_id from user_feed order by feed_id desc");
if( ! $previous_feed )
{
$previous_feed['feed_id'] = 0;
}
$insert['feed_id'] = $previous_feed['feed_id'] + 1;
$insert['feed_parent'] = $this->input['parent'];
$insert['feed_user'] = $this->user['user_id'];
$insert['feed_date'] = time();
$insert['feed_content'] = $this->input['content'];
$return['feed_id'] = $this->db->insert('user_feed', $insert );
$html = <<<HTML
<table style="border:solid 1px #d7d7d7;margin-bottom:5px;">
<tr>
<td class="row2" style="width:1%;">{$data['avatar']}</td>
<td class="row1" style="width:100%;" valign="top">
<p>{$return['user']}</p>
<p>{$return['content']}</p>
</td>
</tr>
</table>
HTML;
@header( "Content-type: text/html;charset=utf-8" );
print $html;
exit();
}
当我删除所有 html 并执行 print $return['content']; 或打印 $this->input['content'] 浏览器控制台日志中没有发生错误,但它不会向#feed id 返回任何文本。
如果需要任何其他信息,请告诉我。
任何关于正在发生的事情的想法将不胜感激,谢谢!