2016-03-28 30 views
1

私は画像ボックスをajaxで削除しようとしていますが、私のclass="box"は削除をクリックしても消えませんが、画像がデータベースから削除され、フォルダからリンクが解除されました。私のコード、事前に感謝!成功関数が機能しない

マイコード:

<ul> 
<?php while ($result = mysql_fetch_array($sql)) { ?> 
    <li class="box"> 
     <div class="image-box"> 
      <div class="items-image" style="background-image: url(upload/<?php echo $result['img_1']; ?>);"></div> 
      <p class="error" style="display: none;">Can't delete</p> 
      <div class="items-footer"> 
       <a class="delete" id="<?php echo $result['img_id']; ?>"><i class="fa fa-trash fa-lg"></i></a> 
      </div> 
     </div> 
    </li> 
<?php } ?> 
</ul> 

$(document).ready(function(){ 
    $(".delete").on('click', function(evt){ 
    var del_id = $(this).attr('id'); 
    var prop_id = "<?php echo $ID; ?>"; 
     $.ajax({ 
      type:'POST', 
      url:'image_delete.php', 
      data: ({delete_id : del_id, product_id: prop_id}), 
      success: function(data) { 
       if(data == '0') { 
        $(".error").show(); 
       } else if(data == '1') { 
        $(this).parents(".box").animate({ backgroundColor: "#003" }, "slow").animate({ opacity: "hide" }, "slow"); 
       } 
      } 
     }); 
    }); 
}); 

image_upload.php

<?php 
include 'connect.php'; 
$path = "upload/"; 
if(isset($_POST['delete_id'])){ 
    $delete_id = $_POST['delete_id']; 
    $product_id = $_POST['product_id']; 

    $check = mysql_query("SELECT COUNT(img_id) as cnt FROM fm_product_image WHERE p_id_img = '$product_id'") or die(mysql_error()); 
    $getcheck = mysql_fetch_array($check); 

    if($getcheck['cnt'] == '1') { 
     echo '0'; 
    } else { 
     $sql = mysql_query("SELECT img_1 FROM fm_product_image WHERE img_id = '$delete_id'") or die(mysql_error()); 
     $result = mysql_fetch_array($sql); 
     $delete = $result['img_1']; 
     $unlink = $path.$delete; 

     if (unlink($unlink)) { 
      mysql_query("DELETE fm_product_image FROM fm_product_image WHERE img_id = '$delete_id'") or die(mysql_error()); 
      echo '1'; 
     } else { 
      echo '0'; 
     } 
    } 
} 
?> 

答えて

1

使用削除:

$(document).ready(function(){ 
    $(".delete").on('click', function(evt){ 
    var del_id = $(this).attr('id'); 
    var prop_id = "<?php echo $ID; ?>"; 
    var box = $(this).closest(".box"); 
     $.ajax({ 
      type:'POST', 
      url:'image_delete.php', 
      data: ({delete_id : del_id, product_id: prop_id}), 
      success: function(data) { 
       if(data == '0') { 
        $(".error").show(); 
       } else if(data == '1') { 
        box.animate({ backgroundColor: "#003" }, "slow").animate({ opacity: 0 }, "slow"); 
        box.remove(); 
       } 
      } 
     }); 
    }); 
}); 

注:$(this)は、Ajaxオブジェクトを参照し、不透明度は1の値であります0

+0

まだありません –

+1

typo 'var box = .closest("。box ");' – roullie

+0

exaclyは動作しません。 – madalinivascu

関連する問題