2016-09-20 17 views
3

データベースから削除するPHPページを作成しました。このPHPページは、フォーム提出のアクションです。フォームは、 "X"記号の図をクリックして送信されます。 フォームの提出前とデータベースからの削除前に確認する方法をユーザーに求めることができますか?フォーム提出前に確認

これは私のコードです:

<form method='POST' action='delete.php'><input type='image' src='images/delete.png' class='del' alt='Submit Form' /> 

私は私のformタグにこれを追加することにより、インラインでそれを実行しようとしましたが、それはうまくいきませんでした:

onsubmit="return confirm('Are you sure you want to submit this form?');" 
+2

ボタンの場合は 'onclick'を使用し、フォームの場合は' onsubmit'を使用しないでください。 –

+0

確認メッセージが表示されるようにするには、サーバー側でsubmitと呼ばれる確認ページを実行する必要があります(ボタンが2つの新しいphpファイルで、以前に入力された情報はdelete.phpを "yes"選択されます)。これを済ませたら、ajax呼び出しでjavascriptレイヤーを追加して、ユーザーエクスペリエンスを向上させることができます。このアプローチの利点は、あなたのアプリがjavascriptの有無にかかわらず動作できることです。 –

+0

私はどれくらいの注意を払っているのですか* lol * –

答えて

2

をコメントからOPで:あなたは、単一引用符で区切られた属性値に単一引用符を使用することはできません

echo "onclick='return confirm(\'Are you sure you want to submit this form?\');'" 

あなたのオプションは以下のとおりです。

二重引用符を使用JSでHTMLで

echo "onclick='return confirm(\"Are you sure you want to submit this form?\");'" 

二重引用符を使用

echo "onclick=\"return confirm('Are you sure you want to submit this form?');\"" 

使用エンティティ

echo "onclick='return confirm(&quot;Are you sure you want to submit this form?&quot;);\"" 

PHPの文字列の中にHTML属性値の中にJavaScriptを置くと、3つの異なる言語が混在していて、そのエスケープに非常に注意する必要があります。適切な時間に正しい言語を使用してください。

大まかには、PHP文字列の内容を最小限に抑える方がよいでしょう。変数を持っているときだけPHPモードに落としてください。同じ理由

?> 
    <form method='POST' action='delete.php'> 
     <input type='image' src='images/delete.png' class='del' alt='Submit Form' onclick="return confirm('Are you sure you want to submit this form?');" /> 
    </form> 
<?php 

、外部ファイルにあなたのJavaScriptを維持し、addEventListenerの代わりonFOO属性にイベントハンドラをアタッチすることをお勧めします。

+0

私はHTMLタグからphpコードを分離していました。あなたの詳細な対応をありがとうございます。 –

0

これは

<form method='POST' action='delete.php' onsubmit="return confirm('Are you sure you want to submit this form?');"> 
<input type='image' src='images/delete.png' class='del' alt='Submit Form' /></form> 
に動作します
+0

これは、OPが言っていたことです。 – Quentin

+0

しかしそれは私のために働く – manu

+1

それはあなたのために働くが、OPのために働いていない、彼らが彼らの問題を解決していない、彼らが何をしているのかを話す? – Quentin

-1

サイトでjQueryを使用すると最適なソリューションです。

方法jQueryの

あなたのHTML:

<form class="sendingForm" method='POST' action='delete.php'> 
    <input type='image' src='images/delete.png' class='del' alt='Submit Form' /> 
</form> 

は、だから私は、クラスを与える:sendingForm

あなたのJavaScriptセクション:

$(".sendingForm").submit(function() { 
    if (confirm("Please confirm!")) return true; 
    else return false;  
}); 


あなたはそれをチェックすることができます。http://jsfiddle.net/d6gem0ty/

メソッドのインライン

最短ソリューションは多分簡単です。ここにはHTMLとonclickイベントしかありません。

<form class="sendingForm" method='POST' action='delete.php'> 
<input onclick="return confirm('Please confirm!')" type='image' src='images/delete.png' class='del' alt='Submit Form' /> 

あなたはそれをチェックすることができます。http://jsfiddle.net/d6gem0ty/1/

関連する問題