1

デフォルトのopencart管理製品リストフィルター機能を次のように変更しました。リストから製品を削除する必要がある場合は、チェックボックスの代わりに各製品削除アイコンを1回クリックして置き換えます。スクリーンショットはここに添付されています...

ここに画像の説明を入力

正常に動作していますが、削除を確認するダイアログ ボックスで 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>

何か案は?

4

3 に答える 3

1

非 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>
于 2013-04-14T09:41:25.377 に答える
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)
        );

次に、コントローラーの delete() メソッドで、これが 1 つまたは複数のチェックボックスではなく、1 つの項目であるという事実を必ず処理してください。

// Handle onesies
if (!isset($this->request->post['selected'])) {
   if (isset($this->request->get['offer'])) {
     $this->request->post['selected'] = array($this->request->get['offer']);
   }
}
于 2017-05-25T18:23:05.577 に答える