Php 案例,当;文件准备就绪“;阻碍

Php 案例,当;文件准备就绪“;阻碍,php,javascript,jquery,Php,Javascript,Jquery,我有一个php文件,在这个文件中我有以下代码: <script language="JavaScript" type="text/javascript" src="jquery.js"></script> <script language="JavaScript"> $(document).ready( function () { var myvar = <?php echo json_enco

我有一个php文件,在这个文件中我有以下代码:

    <script language="JavaScript" type="text/javascript" src="jquery.js"></script>
    <script language="JavaScript">
        $(document).ready( function () {
            var myvar = <?php   echo json_encode($myvar);   ?> ;
        });
    </script>
    <script language="JavaScript" type="text/javascript" src="costum.js">  </script>
此操作不起作用,错误控制台返回“myvar未定义”

如果是在php文件中编写的(也就是说,没有“document.ready”)


var myvar=;
在costum.js文件中,代码alredy正在工作。请告诉我为什么会这样

试试看

<script>
    var myvar;
    $(document).ready( function () {
        myvar = <?php   echo json_encode($myvar);   ?> ;
    });
</script>

var-myvar;
$(文档).ready(函数(){
myvar=;
});
您的变量必须声明为全局变量(或者换句话说,在外部范围内),才能从
document.ready
函数中查看


作为旁注,
语言
属性不是必需的。即使是
type
也不是必需的(如果您使用的是
html5
doctype)

您的
myvar
在ready函数的本地范围内。将
var
声明移到外部,使其成为全局的,并可供其他脚本使用

然而,由于您只需分配一个变量,因此无论如何都不需要等待DOMready。只用

<script type="text/javascript">
    var myvar = <?php echo json_encode($myvar); ?>;
</script>

var myvar=;

顺便说一句,函数中的
语言
属性。

局部变量仅在函数范围内可见

在全局范围中声明变量时,它就是全局变量

您可以通过以下方式将其公开到全局范围:

$(document).ready( function () {
      var myvar = <?php   echo json_encode($myvar);   ?>;
      window['myvar'] = myvar;
 });
$(文档).ready(函数(){
var myvar=;
窗口['myvar']=myvar;
});

感谢、理解并感谢您提供的侧边“语言属性”信息。Bergi先生和xdazz先生,你也谢谢。
<script type="text/javascript">
    var myvar = <?php echo json_encode($myvar); ?>;
</script>
$(document).ready( function () {
      var myvar = <?php   echo json_encode($myvar);   ?>;
      window['myvar'] = myvar;
 });