在Joomla错误中通过jQuery传递信息

时间:2014-06-03 03:06:25

标签: jquery joomla

我的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());
});

?>

1 个答案:

答案 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函数中,因为它不是全局变量。

希望这有帮助