0

我正在使用 Bootstrap(经过大量修改)并且喜欢使用data-toggle. 我当前的脚本非常简单,它是一个图像上传脚本。我使用以下代码列出数据库中的图像:

$stmt = $db->query('SELECT * FROM img_slider ORDER BY id ');
      while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
      echo "<li>
      <div class='thumbnail removable'>
      <div class='remove' id='{$row['id']}' data-toggle='remove'></div>
      <img src='../{$row['path']}'>
      </div>
      </li>"
;}

注意data-toggle='remove'- 这个功能可以很好地静态删除图像,但是我想删除数据库中的图像是什么意思?我知道最好的方法是利用 Ajax。这就是我的意思:

我的 PHP 文件 delete.php:

$id = $_REQUEST['id'];
$db->beginTransaction();
$st = $db->prepare('DELETE FROM img_slider WHERE id = :id');
$st->execute(array(':id' => $id));
$db->commit();

我正在尝试使用以下 jquery/ajax 执行此操作:

$("a[data-toggle=remove]").click(function() 
{   
    var image_id = $(this).attr('id');

    $.ajax({
        cache: false,
        type: 'POST',
        url: 'actions/delete.php',
        data: 'id='+image_id,
    });
});

任何帮助将不胜感激!我只是不知道如何使用 PHP 的引导数据切换,尝试搜索解决方案,空手而归。这是图像上传工作原理的图像:

图像在我的 SELECT 中回响

4

2 回答 2

2

如果是选择器的问题, tt 应该是

$('div[data-toggle="remove"]').click(function() {   

但如果它是点击你的意思的图像

$('div[data-toggle="remove"]').next().click(function() {   

编辑. 我刚刚像这样测试了你的问题:

<div class='thumbnail removable'>
  <div class='remove' id='27' data-toggle='remove'></div>
  <img src='1.gif'>
</div>
$('div[data-toggle="remove"]').next().click(function() {   
    var image_id = $(this).prev().attr('id');
    alert(image_id);
    $.ajax({
        cache: false,
        type: 'POST',
        url: 'actions/delete.php',
        data: 'id='+image_id
    });
});

警报 27 并尝试使用id: 27.


如果是点击数据切换<div>

$('div[data-toggle="remove"]').click(function() {   
    var image_id = $(this).attr('id');
于 2013-10-02T13:51:35.523 回答
1

看看 jQuery 函数 ON:http ://api.jquery.com/on/

问题是您在加载时绑定点击事件,当您将元素加载到页面异步时,它们不会绑定事件。On 应该绑定现在和将来的事件。

$("body").on( "click", ".remove", function() {
    // Remove stuff
});
于 2013-10-02T13:50:40.220 回答