Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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
Javascript jQueryUI:";未捕获语法错误:意外标记<&引用;在一种环境中,而不是在另一种环境中_Javascript_Jquery_Cakephp - Fatal编程技术网

Javascript jQueryUI:";未捕获语法错误:意外标记<&引用;在一种环境中,而不是在另一种环境中

Javascript jQueryUI:";未捕获语法错误:意外标记<&引用;在一种环境中,而不是在另一种环境中,javascript,jquery,cakephp,Javascript,Jquery,Cakephp,我有一个非常简单的自动完成函数附加到CakePHP表单上的一个字段。以下是jQuery: <script> $(function() { var availableTags = [<?=$suppliers?>]; $( "#MsrSupplier" ).autocomplete({ source: availableTags }); }); </script> my edit.ctp中的字段代码: <?php echo $thi

我有一个非常简单的自动完成函数附加到CakePHP表单上的一个字段。以下是jQuery:

<script>
$(function() {
   var availableTags = [<?=$suppliers?>];
   $( "#MsrSupplier" ).autocomplete({
   source: availableTags
  });
});
</script>
my edit.ctp中的字段代码:

<?php echo $this->Form->input('supplier', array('type'=>'textbox', 'div'=>false, 
          'name'=>'supplier', 'id'=>'MsrSupplier')); ?>

这在我的开发环境中运行得很好,这只是在Mac OS X上运行的XAMPP的本地安装。当我开始在字段中键入一个单词时,我会得到自动完成建议,并完成CSS格式设置。但是,当我将其推送到生产服务器时,在检查字段时会出现以下错误:

Uncaught SyntaxError: Unexpected token <
未捕获的语法错误:意外标记<
错误指向我的jQuery代码中的这一行:

var availableTags = [<?=$suppliers?>];
var availableTags=[];
所以,我看到了问题,但我不知道为什么会有问题,也不知道该怎么办。XAMPP中的Apache版本是2.4.16。我的服务器上的版本是2.2.3-92,在CentOS 5上运行。这两个环境都运行CakePHP版本2.0.5,并且指向我的jQuery版本的默认布局是相同的

echo还有一个快捷语法,您可以立即在开始标记后面加上等号。在PHP5.4.0之前,此简短语法仅在启用配置设置时有效

您的服务器可能已禁用该选项,因此它将按原样输出,即
,而不是解释为PHP

另外,通常我会在从PHP向JS传递数据时使用
json\u encode
,即不要在控制器中构建逗号分隔、带引号的字符串,而是按原样将查询/结果传递给视图,然后执行以下操作:

var availableTags = <?php echo json_encode($suppliers) ?>; // or <?= when applicable
var availableTags=;//或
echo还有一个快捷语法,您可以立即在开始标记后面加上等号。在PHP5.4.0之前,此简短语法仅在启用配置设置时有效

您的服务器可能已禁用该选项,因此它将按原样输出,即
,而不是解释为PHP

另外,通常我会在从PHP向JS传递数据时使用
json\u encode
,即不要在控制器中构建逗号分隔、带引号的字符串,而是按原样将查询/结果传递给视图,然后执行以下操作:

var availableTags = <?php echo json_encode($suppliers) ?>; // or <?= when applicable

var availableTags=;//或者您可能不会呈现PHP。查看渲染视图源。另一种选择是,在数组中有一个标记:[]在本例中,Apache和CakePHP版本与PHP版本没有多大关系……在这里我们有一个区别。XAMPP版本是5.5.36。服务器版本为5.3.3。两者都已过时;)是的,我们在这台服务器上运行了许多旧的应用程序。不要问-DYou可能不会呈现PHP。查看渲染视图源。另一种选择是,在数组中有一个标记:[]在本例中,Apache和CakePHP版本与PHP版本没有多大关系……在这里我们有一个区别。XAMPP版本是5.5.36。服务器版本为5.3.3。两者都已过时;)是的,我们在这台服务器上运行了许多旧的应用程序。不要问-DIt显示默认、开发和生产的short_open_标记已设置为On。要点:使用json_编码。您建议我如何修改控制器代码以使上述功能正常工作?现在,如果我不使用逗号分隔的数组,我会得到一个数组到字符串的转换错误。@Chris如果真的为有问题的环境启用了它,我会感到惊讶,至少我目前想不出任何其他原因导致该语法没有被解释为PHP。关于这个错误,我真的不知道错误是在哪里触发的?可能是在表单helper中?我最终通过显式地键入“对于默认、开发和生产,short_open_标记似乎已设置为On。要点:使用json_编码。您建议我如何修改控制器代码以使上述功能正常工作?现在,如果我不使用逗号分隔的数组,我会得到一个数组到字符串的转换错误。@Chris如果真的为有问题的环境启用了它,我会感到惊讶,至少我目前想不出任何其他原因导致该语法没有被解释为PHP。关于这个错误,我真的不知道错误是在哪里触发的?可能是在表单helper中?我最终通过显式键入