我的Prestashop中的脚本存在很大问题。
我有一个错误:"未捕获的SyntaxError:意外的字符串"。
这是剧本:
{if $ajaxsearch}
<script type="text/javascript">
// <![CDATA[
$('document').ready( function() {
$("#search_query_{$blocksearch_type}")
.autocomplete(
'{if $search_ssl == 1}{$link->getPageLink('search', true)}{else}{$link->getPageLink('search')}{/if}', {
minChars: 3,
max: 10,
width: 500,
selectFirst: false,
scroll: false,
dataType: "json",
formatItem: function(data, i, max, value, term) {
return value;
},
parse: function(data) {
var mytab = new Array();
for (var i = 0; i < data.length; i++){
mytab[mytab.length] = { data: data[i], value: data[i].cname + " > " + data[i].pname };
}
return mytab;
},
extraParams: {
ajaxSearch: 1,
id_lang: {$cookie->id_lang}
}
}
)
.result(function(event, data, formatted) {
$('#search_query_{$blocksearch_type}').val(data.pname);
document.location.href = data.product_link;
})
});
// ]]>
</script>
{/如果}
代码位于prestashop模块的TPL视图中。
这是Google Chrome控制台中错误的屏幕截图:
我需要你的帮助......
答案 0 :(得分:1)
'{if $search_ssl == 1}{$link->getPageLink('search', t…
是抱怨的语法错误。
在以'
个字符分隔的字符串中,您不能使用未转义的'
个字符。
看起来您正在尝试从PHP生成JavaScript,但忘记了<?php
和?>
。
答案 1 :(得分:0)
你不能在&#39;之间加上&#39; &#39;
使用&#34; \&#34;在它之前。
'{if $search_ssl == 1}{$link->getPageLink(\'search\', true)}{else}{$link->getPageLink(\'search\')}{/if}', {