echo"<td> <a href ='del.php?id=$id' onclick='return confirm('Are you sure?');'><center>Delete</center></a></td>";
ユーザーが「OK」を押すと「削除」をクリックし、データが削除されるページにリダイレクトされ、「キャンセル」を押すと何も起こらないので、プロンプトメッセージが必要です。 。上記のコードを使用すると、プロンプトボックスを取得できず、データが直接削除されます。
echo"<td> <a href ='del.php?id=$id' onclick='return confirm('Are you sure?');'><center>Delete</center></a></td>";
ユーザーが「OK」を押すと「削除」をクリックし、データが削除されるページにリダイレクトされ、「キャンセル」を押すと何も起こらないので、プロンプトメッセージが必要です。 。上記のコードを使用すると、プロンプトボックスを取得できず、データが直接削除されます。
あなたは混乱しています'
、そして"
ここにいます。
echo "<td> <a href ='del.php?id=$id' onclick='return confirm(\"Are you sure?\");'><center>Delete</center></a></td>";
あなたのコードはこれを出力します:
<td>
<a href ='del.php?id=123' onclick='return confirm('Are you sure?');'><center>Delete</center></a>
</td>
onclick
SO の構文強調表示からでも、ハンドラーに問題があることがわかります。そこに'
は other の中にあります'
。その時点で、インナー'
を に置き換える必要があります"
。PHP でこれを行うには (周囲にもあります)、代わりに使用し"
て内部をエスケープするだけです。"
\"
複雑さを取り除くには、次のようにコーディングできます。
$confirm="return confirm('Are you sure?');";
echo "<td> <a href ='del.php?id=$id' onclick='$confirm'><center>Delete</center></a></td>";
また
echo "<script> function isConfirm() { if(!confirm('Are you sure?')) return false;}";
echo "<td> <a href ='del.php?id=$id' onclick='return isConfirm()'><center>Delete</center></a></td>";
これは PHP とは無関係です。a
タグの onclick ハンドラーは、ブラウザーが場所を変更するのを止めません。代わりに次のようなことができます。
echo"<td> <a href='javascript:void' onclick='if (confirm(\"Are you sure?\")) window.location=\"del.php?id=$id\";'><center>Delete</center></a></td>";
echo"<td><a href ='del.php?id=$id' onclick=\"return confirm('Are you sure?');\"><center>Delete</center></a></td>";
二重引用符が抜けています onclick=\" \";
一重引用符が原因で、確認ボックスがプログラムによって検出されませんでした >> onclick='return confirm('Are you sure?');'