2017-06-25 4 views
3

間違った行が選択された場合に、データベースからスクリプトを削除する前に確認ボックスを表示する予定です。 '削除' の画像は、それだけで行を削除押されるのhref削除前のhrefリンクで確認する

echo '<td align="center" valign="middle"><a href="delete.php?id='.$row["id"].'" class="confirmation"><img src="img/icon/delete.png"></a></td>'; 

のJavaスクリプト

<script type="text/javascript"> 
    var elems = document.getElementsByClassName('confirmation'); 
    var confirmIt = function (e) { 
     if (!confirm('Are you sure?')) e.preventDefault(); 
    }; 
    for (var i = 0, l = elems.length; i < l; i++) { 
     elems[i].addEventListener('click', confirmIt, false); 
    } 
</script> 

ため

コード、何の確認ボックスが表示されませんか?

+0

ねえヨセフ、あなたはループが実際にあなたの確認リンクを通過しているので、elems配列が空でないことを確認していますか? – wilsotobianco

+4

スクリプトタグがページの最後にあること、または少なくともリンクの後にあることを確認してください。 –

+0

@ YazanWuusufありがとうございました。 –

答えて

1

scriptタグはページの最後にある、あるいは少なくとも、リンク後のことを確認します。

+1

jQueryを追加することもできます。その後、スクリプトを一番上に定義することができます。その後、ロジックはonPageLoadedイベントハンドラで開始されます。 – Mischa

0

PHP

echo '<td align="center" valign="middle"><a data-href="delete.php?id='.$row["id"].'" href="javascript:;" onclick="confirmToDelete(this);"><img src="img/icon/delete.png"></a></td>'; 

はJavaScript

<script> 
    function confirmToDelete(element){ 
    if(!element) return false; 
    if(confirm('Are you sure?')) self.location.href=element.getAttribute('data-href'); 
    } 
</script> 
+1

これはうまくいくが、文書構造とアプリケーションロジックを混在させることで、長期的には良い考えではない。 – Christian

+0

それは機能しますが、ドキュメント構造とアプリケーションロジックを混在させることが必要です。長期的には良い考えではありません。 – Christian

0

次のコードを試してください。あなたは外部のJavaScriptなしでそれを行うことができます。あなたのリンクのonlickイベントにconfirm機能を追加するだけです。

PHP

echo '<td align="center" valign="middle"><a href="delete.php?id='.$row["id"].'" class="confirmation" onclick="return confirm(\'Are you sure?\');"><img src="img/icon/delete.png"></a></td>'; 
関連する問題