Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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
未捕获的SyntaxError:php的意外标识符_Php_Jquery_Jquery Ui_Syntax Error - Fatal编程技术网

未捕获的SyntaxError:php的意外标识符

未捕获的SyntaxError:php的意外标识符,php,jquery,jquery-ui,syntax-error,Php,Jquery,Jquery Ui,Syntax Error,当我将数组值放入脚本变量中时,下面的代码在没有php的情况下运行良好。但在php it console.log未捕获的语法错误:意外标识符。请帮我找出我的错误 <!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css"> <s

当我将数组值放入脚本变量中时,下面的代码在没有php的情况下运行良好。但在php it console.log
未捕获的语法错误:意外标识符
。请帮我找出我的错误

<!DOCTYPE html>
 <html lang="en">
 <head>
    <link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    <script src="//code.jquery.com/jquery-1.10.2.js"></script>
    <script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<?php
    $availableName = array("ActionScript","AppleScript","Asp","BASIC","C","C++","Clojure","COBOL","ColdFusion","Erlang","Fortran","Groovy","Haskell"); 
    $availableName = json_encode($availableName);
    echo "<script type=\"text/javascript\">";
    echo "  $(function() {";
    echo "    var allTags =" . $availableName;
    echo "    $( \"#tags\" ).autocomplete({";
    echo "      source: allTags";
    echo "    }); }); </script>"; 
    ?>
</head>
<body>
<div class="ui-widget">
  <label for="tags">Tags: </label>
  <input id="tags">
</div>
</body>
</html>

标签:

我认为这是因为
$(function()
$(\“\35; tags\”)

php将它作为变量读取,然后出现错误

例如:

$abc = "test";
echo "$abc123"; //test123

要修复它,请将双引号
更改为单引号
我认为这是因为
$(function()
$(\“#tags\”)

php将它作为变量读取,然后出现错误

例如:

$abc = "test";
echo "$abc123"; //test123

要解决此问题,请将双引号
更改为单引号

在这种情况下,$应该不会有任何损害。如果我没有弄错,则在浏览器中执行输出时会出现问题(因此是一个JavaScript错误,而不是PHP错误)

您将JavaScript全部放在一行中,因此需要在末尾添加分号(在“Haskel”之后)

而不是

echo“var allTags=”.$availableName;
试试这个:

echo“var allTags=”.$availableName.;”;

在这种情况下,$应该不会有什么坏处。如果我答对了,在浏览器中执行输出时就会出现问题(因此是JavaScript错误,而不是PHP错误)

您将JavaScript全部放在一行中,因此需要在末尾添加分号(在“Haskel”之后)

而不是

echo“var allTags=”.$availableName;
试试这个:

echo“var allTags=”.$availableName.;”;

我认为这可能与许多引号转义不当有关。或者,我可能会将其编码如下,这样可以减少PHP到javascript的翻译混乱,从而提供更紧凑、可读和简洁的附加好处

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript">
    $(function() {
        var allTags = <?php echo json_encode(array("ActionScript","AppleScript","Asp","BASIC","C","C++","Clojure","COBOL","ColdFusion","Erlang","Fortran","Groovy","Haskell")); ?>;
        $( "#tags" ).autocomplete({'source': allTags});
    });
</script>

$(函数(){
var-allTags=;
$(“#标记”).autocomplete({'source':allTags});
});


您还会注意到,我在
autocomplete
options对象中的object键周围加了引号。对于较新的浏览器,这可能是一种过时的做法;但是,较旧的浏览器需要引用对象键才能正确解析json对象。我发现这仍然是一种很好的做法,因为它有助于避免混淆键我想这可能与许多引号转义不当有关。或者,我可能会将其编码如下,这样可以减少从PHP到javascript的翻译混乱,从而提供更紧凑、可读和简洁的附加好处

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
<script type="text/javascript">
    $(function() {
        var allTags = <?php echo json_encode(array("ActionScript","AppleScript","Asp","BASIC","C","C++","Clojure","COBOL","ColdFusion","Erlang","Fortran","Groovy","Haskell")); ?>;
        $( "#tags" ).autocomplete({'source': allTags});
    });
</script>

$(函数(){
var-allTags=;
$(“#标记”).autocomplete({'source':allTags});
});


您还会注意到,我在
autocomplete
options对象中的object键周围加了引号。对于较新的浏览器,这可能是一种过时的做法;但是,较旧的浏览器需要引用对象键才能正确解析json对象。我发现这仍然是一种很好的做法,因为它有助于避免混淆键快速浏览时会看到一些变量。

PHP是一种服务器端语言。浏览器JavaScript是客户端语言。它们根本不进行交互。如果您有JavaScript语法错误,您至少应该查看一下视图源代码,看看您的JavaScript代码是什么样子。\“text/JavaScript\”这就是问题所在。PHP是一种服务器端语言,而不是用单个cuotes替换。浏览器JavaScript是客户端语言。它们根本不进行交互。如果您有JavaScript语法错误,您至少应该查看一下视图源代码,看看您的JavaScript代码是什么样子的。\“text/JavaScript\”这就是问题所在。我没有用单个cuotes替换scaping,而是在PHPFiddle中测试了它,它似乎没有任何错误。我只是在PHPFiddle中测试了它,它似乎没有任何错误。