Uncaught Error: Syntax error, unrecognized expression: 100this <div class="comment-item">
<div class="comment-post">
<h3>Andrew D: <span>17th march 2014</span></h3>
<p>hi</p>
</div>
</div>
我不确定为什么会得到这个吗?它阻止了我的成功功能正常输出数据.
以下是我的AJAX代码:
$(document).ready(function(){
var form = $('form');
var submit = $('#submit');
form.on('submit', function(e) {
e.preventDefault();
$.ajax({
url: 'ajax_comment.PHP',
type: 'POST',
cache: false,
data: form.serialize(),
beforeSend: function(){
submit.val('Posting...').attr('disabled', 'disabled');
},
success: function(data){
var data_code = data.substring(0,3);
var return_message = data.substring(3); // this is return message without code
if(data_code == 100) {
var item = $(return_message).hide().fadeIn(800);
$('.new-comment').append(item);
form.trigger('reset');
submit.val('Submit Comment').removeAttr('disabled');
} else if(data_code == 200) {
//its a fail
alert("Error: " + return_message);
}
}
});
});
});
这将发送到如下所示的PHP脚本.
if(empty($order_id) === true || empty($comment) === true) {
echo "200comment or order id is empty";
exit();
} else if($num_rows_reviewed> 0) {
echo "200";
exit();
} elseif($no_id_match == 0) {
echo "200";
exit();
} elseif(strlen($comment) > 499) {
echo "200 comment cannot be bigger then 499";
exit();
} else {
echo"100"; // all is good
?> <div class="comment-item">
<div class="comment-post">
<h3><?PHP echo $name; ?>: <span><?PHP echo $date; ?></span></h3>
<p><?PHP echo $comment; ?></p>
</div>
</div>
<?PHP }
我真的不知道我在做什么错.请有人帮忙吗?
提前谢谢了!
解决方法:
这是100与HTML之间的空格,导致jQuery代码失败.尽管jQuery方法的工作量很重,但它可以解析HTML字符串以创建新的DOM元素,而该版本不喜欢前导空格.从您的PHP文件中删除它,或在return_message上调用.trim():
var item = $(return_message.trim()).hide().fadeIn(800);
顺便说一句,您最好使用JSON返回具有data_code和return_message属性的对象,而不是依赖于拆分字符串.您将在PHP中创建一个关联数组,然后使用json_encode函数回显JSON表示形式(而我几乎耗尽了所有PHP知识).
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。