如何在脚本标记内打印JSON数组?

时间:2015-07-22 23:45:20

标签: php ajax json

我正在尝试在<script>标记内显示JSON数组,这可能吗?

这是我到目前为止所尝试的内容:

<script>
    var x =  JSON.stringify(data);

var json = (function() {
        var json = null;
        $.ajax({
            'async': false,
            'global': false,
            'url': "empdata.json",
            'dataType': "json",
            'success': function (data) {
                json = data;
            }
        });
        return json;
    })();
 </script>

我正在尝试做什么:

<script>

var videos = {"employee_id":"1","employee_name":"Steve","designation":"VP","hired_date":"2013-08-01","salary"
:"6000"};

</script>

1 个答案:

答案 0 :(得分:2)

是的,你就像这样回应它,假设你有一个$ array("employee_id"=>1 ... )等参数数组

var videos = <?php echo json_encode(array(
    "employee_id"=>1
)); ?>;  // <- don't miss the java-script semi-colon though

这应该只打印

  var videos = {"employee_id":1};

PHP并不关心你在哪里回应它,在你的页面中,它没有关于<script>标签是什么的概念。它只知道有些东西是PHP代码,其他一切都是字符串内容。

或者你可以这样做

  var videos = <?php echo '{"employee_id":1}'; ?>;

但这有点毫无意义,除非你的意思是这样。

  var videos = <?php echo '{"employee_id":'.$employee_id.'}'; ?>;

或者你可以这样做

   var videos = {"employee_id":1};

只是把它放在那里,我不明白了?

如果你的意思是来自包含json的文件,那么肯定。

<?php
 $json = file_get_contents( 'pathtofile.json');
?>

<script> ... etc.\

 var videos = <?php echo $json; ?>;

PHP可以读取文件,它可以回显那些文件的内容,PHP并不关心它们中的内容。唯一的问题是内容必须是有效的Json才能使javascript工作。但是php并不关心它是否是JSON,XML,Binary等等,因为PHP是一种松散类型的语言,所以它都是文本。事实上,php并不关心你的Javascript是否有效,它没有javascript的概念。

实际上这也有效(假设image.jpg是一个真实的图像文件。)。

  $jpg = file_get_contents( 'image.jpg' );
  echo '<img src="'. $jpg.'" \>

OR

   header('Content-Type: image/jpeg');
   echo file_get_contents( 'image.jpg' );  //assuming there is no other content
相关问题