微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-AJAX语法错误PHP响应

在控制台中,我通过AJAX发送的PHP脚本收到了此响应.

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] 举报,一经查实,本站将立刻删除。

相关推荐