【问题标题】:How to re-initiate a function to change a variable如何重新启动函数以更改变量
【发布时间】:2019-09-27 03:02:44
【问题描述】:

在我的函数中,我使用了一个变量(链接),当单击该行中的元素时,该变量(链接)从我的datatable 中的一行获取ID 值,以便在Ajax URL 中使用。然后在悬停时,引导弹出窗口打开以显示另一个表中与ID 值匹配的数组。

这第一次完美运行,但我需要为datatable 中的每一行重新启动该函数。目前它只是不断显示我点击的第一个元素的数组。

数据表列

{ data: null, 
      render: function ( data, type, row ) {
      if (data.imagecount3.count == null){ 

      return '<div style=" width:100%; font-size:13px; text-align:left;">0 / 0</div>'}

      else if (data.imagecount3.count == data.filecounter.Counter) {           

      return '<div style=" width:100%; font-size:13px; color:#1ABB9C; font-weight:bold; text-align:left;">'+data.filecounter.Counter+' / '+data.imagecount3.count+'</div>'}

      else {           

      return '<div style=" width:100%; font-size:13px; text-align:left;"><a data-toggle="popover" href="ajax.php?var='+data.macleanf.id+'" class="ajax_link">'+data.filecounter.Counter+' / '+data.imagecount3.count+'</a></div>'}



      }}, 

PHP 连接

<?php
$con=mysqli_connect("localhost","XXXX","XXXX","company");

// Check connection
if (mysqli_connect_errno()) {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

// escape variables for security
$var = mysqli_real_escape_string($con, $_GET['var']);


$sql=$con->query("SELECT Title FROM tblgalleryimages2 WHERE GalleryID='$var'");
//fetch tha data from the database
while ($row = $sql->fetch_array()) {
   echo $row{'Title'};
}

mysqli_close($con);
?>

脚本

$('#yamba_overview').on( 'click', 'a.ajax_link', function (e) {
e.preventDefault();

        var link=$(this).attr('href');

 $.ajax({ //Make the ajax request
      url: link,
      cache: false
    }).done(function(html) { //On complete run tooltip code


$('[data-toggle="popover"]').popover(

{title: "Missing Documents", 
trigger: "hover",
content: html});

    });



 });

【问题讨论】:

  • 显示如何填充数据列。
  • 我已更新数据表代码以包含该列的整个代码。该列渲染良好,数据表使用自己的 PHP 连接器来渲染表格
  • 如果呈现的元素具有各自的 id,您能否使用开发工具进行检查。因为看起来你的代码没问题。
  • 当我在不同行(不同的 macleanf.id 值)上单击“a.ajax_link”属性后预览 ajax 请求时,它会返回该行的正确数据。但是,弹出窗口中的 html 不会更改,仅显示我单击的第一行的数据,而不是为每次单击重新启动函数。有什么建议吗?

标签: javascript jquery datatables single-page-application


【解决方案1】:

编辑脚本

成功解决:在 ajax 中

$('#yamba_overview').on( 'mouseenter', 'a.ajax_link', function (e) {
e.preventDefault();

        var link=$(this).attr('ajax_attr');

 $.ajax({ //Make the ajax request
      url: link,
      cache: false,
      success: function (data) {
            $(".result").html(data);
        }
    })
    .done(function() { //On complete run tooltip code


$('[data-toggle="popover"]').popover(

{title: "Missing Documents", 
trigger: "click",
html: true,
content: function() {
      return $('.result').html();
    }
});
 });
  });

【讨论】:

    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多