1

複数のアイテムを含むページがあり、ユーザーは同じページのアイテムを削除できます。ただし、ユーザーが本当に各アイテムのアクションを続行したい場合は、javascript 確認アラート ボックスを統合して認証する必要があります。

ページにJavaScriptを配置することでそれを達成できましたが、課題は、JavaScript関数を1つだけ使用して1つのアイテムのみを削除できることです。これは単純に、アイテムごとに複数の JavaScript を使用することを意味し、これらのアイテムの数が増え続けるにつれて定義できないため、非常に困難です。

そのため、表示されるすべてのアイテムに対して 1 つの JavaScript 関数のみを使用できるようにする必要があります。

JavaScriptコードは次のとおりです。

<script>    

<!--
function confirmAlertBox(){
   var retVal = confirm("Do you want to continue ?");
   if( retVal == true ){
  window.location = "items.php?del_item&amp;item_id=<?php echo $item_id; ?>";
      return true;
   }else{
      return false;
   }
}
//-->

</script>

データベースからフェッチされる項目は次のとおりです。

<?php

while ($all_item_row = @mysql_fetch_assoc($all_item_query)) {
    $item_title = $all_item_row['title'];
    $item_id = $all_item_row['id'];

 echo '<tr> <td>'.$item_title.'</td> <td class="action_lnk"><a href="edit_item.php?edit_cal&amp;item_id='.$item_id.'">Edit Item</a> <a href="#" onclick="confirmAlertBox()">Delete Item</a> <div class="clear"></div></td> </tr>';

}
}
else{
echo "<strong>No item available. Thank You!</strong>";  
}

?>
4

3 に答える 3

1

これを試して:

<a href=\"javascript:confirmDelete('items.php?del_item&amp;item_id=$item_id;')\">Delete</a>

そしてあなたのjavascript関数は次のようになります

<script>

function confirmDelete(delUrl) {
 if (confirm("Are you sure you want to delete")) {
document.location = delUrl;
 }
} 
</script>
于 2013-01-29T08:40:23.787 に答える
0

別の機能をまとめて削除し、もう少し単純なものを使用します。

テーブル セルを作成するときは、[削除] リンクを次のように変更します。

<a href="items.php?del_item&amp;item_id='.$item_id.'" 
   onclick="return confirm('Do you want to Delete this item?');">
       Delete Item
</a>

PHP で ' 文字をエスケープする方法がわからないため、confirm 関数でこれを行う必要があります。

そうすれば、リンクはすでにアンカーにあり、ユーザーが [OK] をクリックすると、このリンクに送信されます。それ以外の場合falseは返され、ユーザーはその場所にとどまります。

于 2013-01-29T08:48:08.143 に答える
0

関数を次のように変更する必要があります

function confirmAlertBox(id){
   var retVal = confirm("Do you want to continue ?");
   if( retVal == true ){
  window.location = "items.php?del_item&amp;item_id="+id;
      return true;
   }else{
      return false;
   }
}

次に、confirmAlertBox(<?php echo $item_id; ?>)代わりにを使用して呼び出しますconfirmAlertBox()

于 2013-01-29T08:36:26.390 に答える