【问题标题】:Codeigniter ajax tooltipCodeigniter ajax 工具提示
【发布时间】:2013-02-08 14:56:15
【问题描述】:

当光标悬停到链接时,我想使用来自 db 的动态数据制作弹出工具提示,但我做错了。请更正我的代码。

我的看法

    <script type="text/javascript">
        $(document).ready(function() {
            $('.tip').tooltip();
        });
    </script>
    <script type="text/javascript" language="javascript">
        jQuery(document).ready(function(){
       $('#something').mouseover(function(){
        $.ajax({
         url: "<?=base_url();?>aircraft/tip",
         type: 'POST',
         data: {
          'id': $(this).attr("rel"),
         },
         dataType: 'json',
         success: function(aircraft_j) {
                  $('#something').attr('data-original-title',aircraft_j);  
              }
        });
        return false;
       });
      });
      </script>

    <a href="#" data-toggle="tooltip" data-placement="right" id="something" title="" 
data-original-title="" rel="1" class="tip">aircraft</a>

我的控制器

 function tip() {
    $this->output->enable_profiler(false);
    if($this->input->server('HTTP_X_REQUESTED_WITH') != 'XMLHttpRequest'){ echo "fail. try something else"; return; }
    $this->load->model('aircraft_model');
    $idd = $this->input->post('id');
    $aircraft_j = array();
    $aircraft_j = $this->aircraft_model->get_aircraft_tip($idd);
    echo json_encode($aircraft_j);
    }

我的模型

 function get_aircraft_tip($idd) {
    $this->db->where('id',$idd);
    $query = $this->db->get('aircraft');
    return $query->row_array();
    }

【问题讨论】:

  • 有什么问题?你有错误吗?你期望输出是什么?你需要问一个好问题才能得到好的答案。 “更正我的代码”对我们没有帮助。
  • @Miguel-F 你遇到错误了吗? - 不,我什么也没得到,这就是问题所在。当光标悬停在链接上时,我想用 id 工具提示 div 将记录返回控制器的结果。
  • 你用的是什么工具提示?
  • @mamdouh-alramadan 我使用引导程序,但是这是我第一次使用 jquery/ajax,我不知道如何以及在哪里粘贴引导工具提示。

标签: ajax codeigniter tooltip


【解决方案1】:

好的,正如您所说,您正在使用 bootstrap 工具提示。你应该这样做:

在您的 html 中:

<a href="#" data-toggle="tooltip" id="something" title="" 
data-original-title="tooltip data goes here">whatever you want</a>

据我所知,您的 ajax 和 CI controller 没有问题,但您必须对您的 success function 进行轻微更改,如下所示:

success: function(aircraft_j) {
                  $('#something').attr('data-original-title',aircraft_j);  
              }

另外:您可以阅读prop(),这可能对您有所帮助。

您可能面临的问题..

在您的CI tip function 中,我看到了echo json_encode($aircraft_j);,因此您的$aircarft_j 变量应该是“string”数据类型。正如我所见,您正在从您的模型中返回 $query-&gt;row_array();,因此您可能需要将其作为数组使用。 here你可以找到一个很好的解释。

【讨论】:

  • 你说的我都做了,但是经过测试,我发现了一个问题。成功函数中的数据为空。你说 $aircraft_j 必须是字符串类型。为了测试我做了这个: $aircraft_j = '1';此数据为空后。我认为这个问题可能出在 json_encode 但不知道为什么。还有一个问题。我可以在控制器中将结果与 html 结合起来然后查看吗?还是更好地结合在视野中?
  • 我给你一个编译的例子。我没有说它应该是字符串。如果您愿意,我提供的链接可以帮助您处理数组。有多个关于此的帖子。你能告诉我成功内的警报(aircraft_j)的结果是什么。如果它是空的,请粘贴您修改后的代码,以便我可以更好地了解您的问题
  • 关于组合,你可以两者兼得。但是在您的控制器中执行该过程并将其更好地传递给视图操作系统,因为您在这里遵循 mvc 工作
  • 警报结果 (aircraft_j) 为空。我在第一篇文章中插入了修改后的代码。
  • 好的。所以你正在传递一个数组。所以请粘贴你可以在萤火虫中看到的console.log(aircarft_j) 的结果。并检查模型是否实际返回数据。
猜你喜欢
  • 1970-01-01
  • 2010-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多