将JSON数组返回给ajax

时间:2014-08-19 15:25:21

标签: php jquery ajax json

我被困在这里。

我在尝试选择div时尝试触发ajax,然后获得JSON响应。我能够返回的只是错误代码,我不知道为什么。这是简化版本(仍然得到与实际相同的响应)。也许有更好的方法吗?谢谢你的帮助。

jquery的:

<html lang="en">
<meta charset="utf-8">
  <link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<style>
  #selectable .ui-selecting { background: #FECA40; }
  #selectable .ui-selected { background: #F39814; color: white; }
  #selectable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
  #selectable li { margin: 3px; padding: 0.4em; font-size: 1.4em; height: 18px; }
</style>

<script>

  $(function(){


$("#selectable").selectable({
  selected : function(event, ui) {
    if($(ui.selected).hasClass('ui-widget-content')){
         var rptID = ($(ui.selected).val());
             $.ajax(
   {

      type: "POST",
      dataType: "json",
      url: "hello2.php",
      success: function( response ) 
      { 

        alert(1);
      },
      error: function( error )
      {
        console.log(error);


      }

   } );




    } 
    }
});

});
  </script>

  <body><ol id="selectable">
  <li class="ui-widget-content" value=1 >Item 1</li>
  <li class="ui-widget-content" value=2>Item 2</li>
  <li class="ui-widget-content" value=3>Item 3</li>
</ol></body>
</html>

PHP:

<?php
 $json = array('hello' => 'hello');
    header('Content-Type: application/json');
        echo json_encode($json); 
 ?>

1 个答案:

答案 0 :(得分:3)

php?>将导致PHP级别的语法错误/警告,并且语法错误输出可能会被标记到JSON输出的末尾,从而导致客户端上出现JSON解析错误。

PHP代码块只是<?php ... ?>

e.g。

[marc ~]$ cat z.php
<?php
echo json_encode('foo');
php?>
[marc ~]$ php z.php
"foo"PHP Notice:  Use of undefined constant php - assumed 'php' in /home/marc/z.php on line 3

编辑---现在我看到OP编辑了php?>的东西......