2017-04-20 12 views
2

我有下面的PHP代碼表:可變進jQuery來形成一個鏈接

<table id="myTable"> 
     <tr class="header"> 
      <th>Naam</th> 
      <th>Bedrijf</th> 
     </tr> 
     <?php 
     include 'assets/scripts/connect.php'; 
     $q = mysql_query("SELECT * FROM `users` WHERE `admin`='0' AND `deleted`='0'"); 
     while ($row = mysql_fetch_assoc($q)) { 
       $id = $row['id']; 
      ?> 
      <tr class="trash" onclick="deletePopUp()" data-id="<?php echo $id; ?>"> 
      <td><?php echo $row['fname']; ?> <?php echo $row['lname']; ?></td> 
      <td><?php echo $row['company']; ?></td> 
      </tr> 

      <?php 
       } 
      ?> 
</table> 

正如你可以看到,我添加了一個數據識別號由代碼中創建的每一行與數據庫結合。 onClick函數使請求的模式彈出,以確認用戶是否真的想要刪除該客戶。模態編碼方式如下:

<!-- The Modal --> 
<div id="myModal" class="modal"> 

<!-- Modal content --> 
<div class="modal-content"> 
    <div class="modal-top"> 
     <h1>Weet je het zeker?</h1> 
     <span class="close">&times;</span> 
    </div> 
    <div class="modal-inner"> 
     <a href="delete-user.php?id=<?php echo $id; ?>" id="delete" class="btn-confirm">Verwijderen</a> 
     <a href="#" class="btn-cancel cancel">Annuleren</a> 
    </div> 

</div> 

</div> 

這兩個錨標籤用於確認。所以人們應該去外部PHP腳本根據他們的ID刪除客戶。我爲此使用GET方法。但現在形式上的鏈接始終使用相同的ID。做鏈接永遠是:

/assets/scripts/delete-user.php?id=2

我想有ID爲相同客戶的點擊。

我試過使用jQuery來形成這個鏈接,但我得到了相同的結果。這是我用的jQuery:

var id=$('.trash').data('id'); 
$('#delete').attr('href','/assets/scripts/delete-user.php?id='+id); 

但如上所述,這給出了相同的結果。

如何獲取模態上​​的鏈接以獲得動態ID?

+1

停止使用'mysql_ *'函數。自v5.5(2013年6月)開始,它們已被棄用,並從v7.0(2015年12月)開始刪除。請使用[** mysqli _ ***](https://secure.php.net/manual/en/book.mysqli.php)或[** PDO **](https://secure.php.net /manual/en/book.pdo.php)與[**準備語句**](https://secure.php.net/manual/en/pdo.prepare.php)和[**綁定參數** ](https://secure.php.net/manual/en/pdostatement.bindparam.php)。 –

+0

感謝您的提示,我會適應它。雖然 – Gidimotje

+0

不會影響我的問題,但請注意....使用鏈接刪除信息是一個壞主意,任何殭屍程序下面的鏈接都會觸發刪除。 – Vbudo

回答

1

由於您添加了一個內聯JS事件處理函數,我會建議使用的參數:

  • 事件:事件對象
  • 這樣的:當前元素

在你的情況你可寫:

<tr class="trash" onclick="deletePopUp(event, this)" data-id="This is An ID">

因此,您deletePopUp功能將是:

function deletePopUp(e, ele) { 
    var id = ele.dataset['id']; // get current data-id 
    $('#delete').attr('href','/assets/scripts/delete-user.php?id='+id); 
    $('#myModal').modal('show'); 
} 

的片段:

function deletePopUp(e, ele) { 
 
    var id = ele.dataset['id']; 
 
    $('#delete').attr('href','/assets/scripts/delete-user.php?id='+id); 
 
    $('#myModal').modal('show'); 
 
} 
 

 

 
$('#delete').on('click', function(e) { 
 
    e.preventDefault(); 
 
    console.log(this.href); 
 
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> 
 
<script src="https://code.jquery.com/jquery-2.1.1.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> 
 

 

 
<table id="myTable"> 
 
    <tr class="header"> 
 
     <th>Naam</th> 
 
     <th>Bedrijf</th> 
 
    </tr> 
 
    <tr class="trash" onclick="deletePopUp(event, this)" data-id="This is An ID"> 
 
     <td>name</td> 
 
     <td>company</td> 
 
    </tr> 
 
</table> 
 
<!-- The Modal --> 
 
<div id="myModal" class="modal"> 
 

 
    <!-- Modal content --> 
 
    <div class="modal-content"> 
 
     <div class="modal-top"> 
 
      <h1>Weet je het zeker?</h1> 
 
      <span class="close">&times;</span> 
 
     </div> 
 
     <div class="modal-inner"> 
 
      <a href="delete-user.php?id=<?php echo $id; ?>" id="delete" class="btn-confirm">Verwijderen</a> 
 
      <a href="#" class="btn-cancel cancel">Annuleren</a> 
 
     </div> 
 

 
    </div> 
 

 
</div>

+0

這個作品,謝謝! – Gidimotje

+0

@Gidimotje非常感謝 – gaetanoM

+0

當然,它的完成! – Gidimotje

1

上面更簡單的方法可以是: (我沒有測試過這一點,我假設這是你需要的)

$(document).ready(function() { 
    $(".trash").click(function() { 
     var id = $(this).attr("data-id"); 
     $("#delete").attr("href","delete-user.php?id="+id); 
    }); 
});