Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在<;脚本>;标签?_Php_Javascript_Json_Object - Fatal编程技术网

Php 在<;脚本>;标签?

Php 在<;脚本>;标签?,php,javascript,json,object,Php,Javascript,Json,Object,我试图用PHP在javascript中创建一个对象。这是我的剧本: <script> $(document).ready(function(){ var genres = [ <?php $last = count($userGenres) - 1; $i = 0; foreach($userGenres as $a){ $i++; echo '{"value":"'

我试图用PHP在javascript中创建一个对象。这是我的剧本:

    <script>
        $(document).ready(function(){
            var genres = [
    <?php
    $last = count($userGenres) - 1;
    $i = 0;
    foreach($userGenres as $a){
        $i++;
        echo '{"value":"'.$a['genre'].'", "name":"'.$a['name'].'"}';
        if($i < $last){
            echo ',';
        }
    }
    ?>
                        ];
   });
</script>

$(文档).ready(函数(){
变量类型=[
];
});
当我检查生成的源代码时,它会创建一个有效的对象,但该标记中的整个脚本现在无法工作。如果没有JSON,该如何解决这个问题


谢谢

您忘记关闭
.ready()
方法及其内部的匿名函数

试试这个:

<script>
    $(document).ready(function(){
        var genres = [
            <?php
            $last = count($userGenres) - 1;
            $i = 0;
            foreach($userGenres as $a)
            {
                $i++;
                echo '{"value":"'.$a['genre'].'", "name":"'.$a['name'].'"}';
                if($i < $last)
                {
                    echo ',';
                }
            }
            ?>
        ];
    });
</script>

$(文档).ready(函数(){
变量类型=[
];
});

您的函数未正确关闭:

}
    }
    ?>
                        ];
}); // <--- add this
</script>
}
}
?>
];
}); //  这:


$(文档).ready(函数(){
变量类型=[
];
});

更改:必须关闭匿名函数和ready()方法。另外,将i++移到末尾,以便覆盖所有情况(您将缺少一个)。你得到的错误是因为你有I++错误。

< P>因为评论说你应该考虑使用(PHP函数)JSONYNECONDER,这会变成…

php:

$a = array(
  array("gender"=> "male", "name"=> "Bob"),
  array("gender"=> "female", "name"=> "Annie")
);

Into json:
[
   {gender:"male", name:"Bob"},
   {gender:"female", name:"Annie"}
]

回显json_encode($a)会像那样输出它。

您没有关闭
$(document).ready()
函数。到底什么不起作用?问题是什么?此代码托管在哪里?我猜在PHP文件中?你知道PHP中的
json\u encode()
函数吗?你真的应该使用
json\u encode
。否则,您的代码就相当脆弱。
php:

$a = array(
  array("gender"=> "male", "name"=> "Bob"),
  array("gender"=> "female", "name"=> "Annie")
);

Into json:
[
   {gender:"male", name:"Bob"},
   {gender:"female", name:"Annie"}
]