2013-04-14 2 views
1

Я изменил некоторые функции фильтра списка товаров по умолчанию, описанные ниже: если мне нужно удалить продукт из списка, я заменяю вместо флажка одним щелчком мыши каждый значок удаления продукта, прикрепленный скриншот здесь ...Пользовательский продукт удалить с помощью диалогового окна подтверждения

enter image description here

Сво работает нормально, но как я могу установить функцию JQuery с диалоговым окном подтверждения удаления?, как наш продукт по умолчанию opencart удалить подтверждение ... при нажатии кнопки удаления спросить подтвердить удаление? с подтверждением и отмена кнопки диалога ... любые идеи?

Мой продукт Кнопка удаления со списком в формате HTML:

<?php if ($products) { ?> 
<?php foreach ($products as $result) { ?>  
<div class="product">  
    <a href="<?php echo $result['delete']; ?>"><img src="delete.png" title="<?php echo $button_delete; ?>" /></a> 
    <img src="<?php echo $result['image']; ?>" alt="<?php echo $result['name']; ?>"/> 
    <a href="<?php echo $result['view']; ?>"><?php echo $result['name']; ?></a>   
</div> 
<?php } ?> 
<div class="pagination"></div> 
<?php } else { ?> 
<div class="empty"><?php echo $text_empty; ?></div> 
<?php } ?> 

Из выше кода Кнопка удаления:

<a href="<?php echo $result['delete']; ?>"><img src="delete.png" title="<?php echo $button_delete; ?>" /></a> 

Есть идеи?

ответ

1

NON JQuery

HTML-:

<a href="#" onclick='confirm_delete("<?php echo $result['delete']; ?>", "<?php echo $result['name']; ?>"); return false;'> 
    <img src="delete.png" title="<?php echo $button_delete; ?>" /> 
</a> 

Javascript:

<script> 
function confirm_delete(link_to_delete, product_name) { 
    var msg=confirm("Are you sure you want to delete " + product_name + " ?"); 
    if (msg==true) 
    { 
    window.location.href = link_to_delete; 
    } 
} 
</script> 

JQuery

HTML-:

<a class="delete_button" href="<?php echo $result['delete']; ?>"> 
    <img src="delete.png" title="<?php echo $button_delete; ?>" /> 
</a> 

Javascript (Jquery):

<script> 
jQuery(".delete_button").on("click", function(e) { 
    e.preventDefault(); 
    var clicked = jQuery(this); 
    var clicked_url = clicked.attr("href"); 
    var product_name = clicked.siblings("img").attr("alt"); 
    var msg=confirm("Are you sure you want to delete " + product_name + " ?"); 
    if (msg==true) 
    { 
    window.location.href = clicked_url; 
    } 
}); 
</script> 
0

Вы можете использовать JQuery немного с помощью: -

$('div.product a img[src="delete.png"]').on('click', function(event){ 
    if(! confirm('Delete?')) { 
     event.preventDefault(); 
     return false; 
    } 
    return true; 
}); 
0

Вот как я сделал это на ряд элементов, каждый из которых является называется «предложение». Это код шаблона:

<a href="<?php echo $offer['delete']; ?>" data-toggle="tooltip" title="<?php echo $button_delete; ?>" class="btn btn-primary" onclick="confirm('<?php echo $text_confirm; ?>') ? $('#form-discount_chooser').submit() : false;"><i class="fa fa-trash-o"></i></a> 

До вызова шаблона, ваш контроллер будет установлен $offer['delete'] следующим образом:

 $data['offers'][] = array(
      ... 
      'delete' => $this->url->link('extension/module/discount_chooser/delete', 'token=' . $this->session->data['token'] . '&offer=' . $discount['id'] . $url, true) 
     ); 

Затем в методе контроллера удаления(), не забудьте обработать тот факт, что это один элемент, а не один или несколько флажков:

// Handle onesies 
if (!isset($this->request->post['selected'])) { 
    if (isset($this->request->get['offer'])) { 
    $this->request->post['selected'] = array($this->request->get['offer']); 
    } 
}