2017-01-26 253 views
1

我正在使用一個名爲Ladda的插件,它基本上是在點擊按鈕時添加了一個加載器!我正在填充數據庫中的表格,並在每行的最後一列添加這些按鈕!這是我的初始代碼添加動態ID到jquery選擇器

<?php 

       $query="select client_id,fullname,email,status 
       from atom_users ORDER BY id DESC"; 

       $stmt = $db->prepare($query); 
       if($stmt){ 
        $stmt->execute(); 
        $stmt->bind_result($id,$fullname,$email,$status); 
        while ($stmt->fetch()) 
        { 

     ?> 
     <tr> 
     <td><?= $id?></td> 
     <td><?= $fullname?></td> 
     <td><?= $email?></td> 
     <td><?= str_replace("-"," ",$status)?></td> 
     <?= ($status=="archive" ? $status2='Un-Archive' : $status2="Archive");?> 
     <td> 

       <button class="ladda-button <?=$id?>" data-color="green" data-style="expand-left" onclick="val('<?= $id?>','<?= $status2?>')"> 
       <?= $status2?> 
       </button> 
      </td> 
     </tr> 
     <?php } 
        $stmt->close(); 
       } ?> 

我在這裏做什麼是相當簡單的只是輸出數據,並在此代碼中有按鈕!現在,每個按鈕都是獨一無二的,我已經爲每個按鈕的類添加了一個$id變量,這樣當加載器在點擊按鈕上運行時,它會在按下的按鈕上運行。現在,這裏的功能:

function val(id,status){ 
     alert(id); 
     alert(status); 
     //original line 
     //var l = Ladda.create(document.querySelector('.button-demo #btn')); 
     //dynamic 
      var l = Ladda.create(document.querySelector('."'.+id+.'"')); 
      l.start(); 
      } 

現在的問題是直線前進的兩行

var l = Ladda.create(document.querySelector('."'.+id+.'"')); 
      l.start(); 

創建的裝載機現在我想在函數收到的ID添加到querySelector使其作品動態我已經嘗試了很多,但它不接受ID!任何建議?

+0

爲什麼你的'id'包裝在自己的引號中?本質上,你的'querySelector'呈現爲'document.querySelector('。「elementID」')'。 – Santi

+0

嘗試過,也是行不通的 –

+0

'$(「#」+ elementID)'試試這個 – guradio

回答

1

正如您所提到的,您的ID是一個數字。雖然在ID和HTML類別中以數字開頭的HTML是可以接受的,但選擇器將無法​​正常工作

所以,首先,你可以給你的班級添加前綴,使其不以數字開頭。這將使我們能夠找到它,而無需做任何瘋狂逃逸我們選擇:

<button class="ladda-button myClass_<?=$id?>" data-color="green" data-style="expand-left" onclick="val('<?= $id?>','<?= $status2?>')"> 

現在,我們班是「容易找到」,我們可以通過修改querySelector正確地找到它:

var l = Ladda.create(document.querySelector(".myClass_"+id)); 

這應該解決您的問題。

+1

謝謝man.keep好的工作:) –