Joomla - OnMouseover使用Qtip脚本在工具提示中显示来自控制器的数据

时间:2013-02-05 15:43:19

标签: ajax joomla tooltip qtip

我需要帮助才能在MouseOVer事件的工具提示(使用qTip脚本)中显示数据(来自控制器)。

  1. 链接上的用户鼠标悬停(如foreach中的多个链接)
  2. id发送到js函数,如函数getData(id){}
  3. 从控制器&中调用PHP函数。使用变量将数据返回到工具提示。
  4. 将退货数据显示在工具提示中。
  5. HTML& PHP:

    foreach ($rows as $row) {
        <a href="#" onmouseover="getData(<?php echo $row->id; ?>)" >Name</a>
    }
    

    JS功能:

    function getData(id)
    {
        var url='index.php?option=com_test&controller=test&task=getDetails&format=raw';
        var data = 'item_id=' + id ;
        var request = new Request({
        url: url,
        method:'post',
        data: data,
        async: true,
        onSuccess: function(responseText)
    { 
        // How i show the "responseText" data here in tooltip using qTip
    }
    }).send();      
    }
    

    控制器功能:

    function getDetails()
    {
       echo $return = JRequest::getVar('item_id');   
    }
    

1 个答案:

答案 0 :(得分:0)

在内容项视图覆盖中添加提示是否更容易(将其添加到title =属性),并且将调用添加到qTip(每页一个)可以解决问题。

此外,ajax会使工具提示不是很快。

只需确保正确转义title属性中的“或”字符,否则您将破坏标记。

编辑:添加代码。我在这里写这个可能有拼写错误,但它应该给你一个想法:

foreach ($rows as $row) {
    // let's assume $tip contains the right tip for each row:
    <a href="#" title="<?php echo $tip; ?>" class="tipme">Name</a>
}

第一部分将显示默认浏览器工具提示。

现在你必须注入qTip脚本:

$document = JFactory::getDocument();
$document->addScriptDeclaration('
    jQuery("a.tipme").qTip();
');

现在如何将价值放入$ tip?我看到你有一个com_test组件,你不需要通过控制器,但可以直接实例化将提供工具提示的模型;如果它被称为“提示”:

$tipmodel=JModel::getInstance('tip', 'ComtestModel'); // get the model (once!)

$tip = $tipmodel->getTip($row->id);

这个故事中的所有变量,模型,控制器名称都是虚构的。