我的jquery代码在joomla中抛出一个错误,它应该从文本框中获取文本并将其插入在单击按钮后指定的URL的末尾。
JHtml::_('behavior.framework', true);
var url = 'https://test.com/storefrontCommerce/search.do;jsessionid=CD66CBFCC5658D6C9327AA269764EBB2?searchType=keyword&keyword=';
$('button').click(function() {
window.location.replace(url + $('#textbox').val());
});
以下是我收到的错误消息:解析错误:语法错误,第35行/home/dival/public_html/templates/proposed/index.php中的意外T_VAR
这是我正在使用的模板中的index.php文件:
<?php
defined('_JEXEC') or die;
/**
* Template for Joomla! CMS, created with Artisteer.
* See readme.txt for more details on how to use the template.
*/
// load jQuery, if not loaded before
if(!JFactory::getApplication()->get('jquery')){
JFactory::getApplication()->set('jquery',true);
$document = JFactory::getDocument();
$document->addScript(JURI::root() . "templates/template_name/js/jquery.js");
}
require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'functions.php';
// Create alias for $this object reference:
$document = $this;
// Shortcut for template base url:
$templateUrl = $document->baseurl . '/templates/' . $document->template;
Artx::load("Artx_Page");
// Initialize $view:
$view = $this->artx = new ArtxPage($this);
// Decorate component with Artisteer style:
$view->componentWrapper();
JHtml::_('behavior.framework', true);
JHtml::_('jquery.framework');
var url = 'https://test.com/storefrontCommerce/search.do;jsessionid=CD66CBFCC5658D6C9327AA269764EBB2?searchType=keyword&keyword=';
$('button').click(function() {
window.location.replace(url + $('#textbox').val());
});
?>
答案 0 :(得分:0)
当我看到Artx::load
时,我绝对感到畏缩。希望你有充分的理由选择Artisteer模板。
无论如何回到主题上。您已在标记内添加了jQuery代码。这不可能发生,因为它们是两种完全不同的语言。但是,您可以使用PHP(在本例中为Joomla API方法)来执行jQuery,如下所示:
$js = " $('button').click(function() {
var url = 'https://test.com/storefrontCommerce/search.do;jsessionid=CD66CBFCC5658D6C9327AA269764EBB2?searchType=keyword&keyword=';
window.location.replace(url + $('#textbox').val());
});
";
$document = JFactory::getDocument();
$document ->addScriptDeclaration($js);
请注意,我还将thr url
变量放在click函数中,因为它不是全局变量。
希望这有帮助