如何在删除之前在php中添加确认框?

时间:2014-09-02 07:00:23

标签: php

我在PHP中创建了一个简单列表,用户可以在其中添加姓名,年龄,电子邮件等。我也添加了删除选项,但是当用户点击删除选项时,我想添加确认消息。

我尝试搜索Google,但我发现只有jQuery和JavaScript解决方案。有没有办法只用PHP做这个?

list.php的

<?php

   include('config.php');

   $query1=mysql_query("select id, name, age from addd");

   echo "<table><tr><td>Name</td><td>Age</td><td></td><td></td>";

   while($query2=mysql_fetch_array($query1))
        {
           echo "<tr><td>".$query2['name']."</td>";
           echo "<td>".$query2['age']."</td>";
           echo "<td><a href='edit.php?id=".$query2['id']."'>Edit</a></td>";
           echo "<td><a href='delete.php?id=".$query2['id']."'>x</a></td><tr>";
        }

    </table>
?>

Delete.php

<?php

    include('config.php');
    if(isset($_GET['id']))
      {
        $id=$_GET['id'];
        $query1=mysql_query("delete from addd where id='$id'");
        if($query1)
          {
          header('location:list.php');
          }
      }
?>

7 个答案:

答案 0 :(得分:7)

如果您只想在PHP中执行此操作,则需要添加&#34;步骤&#34;在你的脚本中,如:

step1 (show form) -> step2 (ask validation) -> step3 (validate)

为此,您可以使用会话来保留表单内容,并使用GET参数来跟踪步骤。 否则最简单的解决方案是使用javascript:

echo "<td><a onClick=\"javascript: return confirm('Please confirm deletion');\" href='delete.php?id=".$query2['id']."'>x</a></td><tr>"; //use double quotes for js inside php!

答案 1 :(得分:2)

这是你需要的

while($query2=mysql_fetch_array($query1))
{
     echo "<tr><td>".$query2['name']."</td>";
     echo "<td>".$query2['age']."</td>";
     echo "<td><a href='edit.php?id=".$query2['id']."'>Edit</a></td>";
     echo "<td><a onclick='javascript:confirmationDelete($(this));return false;' href='delete.php?id=".$query2['id']."'>x</a></td><tr>";
}

并创建javascript函数

function confirmationDelete(anchor)
{
   var conf = confirm('Are you sure want to delete this record?');
   if(conf)
      window.location=anchor.attr("href");
}
相信我的工作:)

答案 2 :(得分:0)

添加onClick事件以触发对话框和javascript:return confirm('are you sure you want to delete this?');

echo "<td><a href='delete.php?id=".$query2['id']."' onClick=\"javascript:return confirm('are you sure you want to delete this?');\">x</a></td><tr>";

答案 3 :(得分:0)

<script>
function deleletconfig(){

var del=confirm("Are you sure you want to delete this record?");
if (del==true){
   alert ("record deleted")
}
return del;
}
</script>

//add onclick event
onclick="return deleletconfig()"

答案 4 :(得分:0)

为我工作,但是,改变这个:

onclick='javascript:confirmationDelete($(this));return false;'

使用:

onclick='confirmationDelete(this);return false;'

答案 5 :(得分:0)

以上是一个变体,它为您提供了确认框,并将一个变量从PHP传递给Javascript并返回给PHP。 我用它来选择一个单选按钮来从文件列表中删除文件 请参阅OnClick运行函数,使用php $ fileName过去到Javascript,确认询问文件名,如果是,转移到href与变量$ _GET

PHP / HTML代码:

&#13;
&#13;
<?php
echo "
    <tr>
        <td>
            <input type='radio' name='input_sched_button'  
            onclick='confirmation(".'"'.$fileName.'"'.")' />
        </td>
        <td class='fixed-td-450'><a href='./$namehref'>$fileName</a></td>
        <td class='fixed-td-40'>$extn</td>
        <td class='col3'>$size</td>
        <td class='fixed-td-80'>$modtime</td>
    </tr>
";
?>
&#13;
&#13;
&#13;

的Javascript

&#13;
&#13;
<script>
    function confirmation(delName){
    var del=confirm("Are you sure you want to delete this record?\n"+delName);
    if (del==true){
        window.location.href="Some_Program.php?delete=y&file="+delName;
    }
    return del;
}
</script>
&#13;
&#13;
&#13;

答案 6 :(得分:0)

我不知道这是否有意义,但是我自己想出了一个解决方案。它不起作用,但是我想在这里分享这个想法,因为它基本上应该做同样的事情。我的解决方案是让php回显javascript,然后让应该在javascript中执行的代码回显,因此将其作为站点上的普通php执行。 this is the site where I got the idea of running the php inside the JS

echo "
    <script>
    if (window.confirm('möchten Sie die Datei wirklich unwiderruflich löschen?')){
        window.alert('<?php
        unlink($allFiles);
        rmdir($fileDir));
    ?>');
    }
    else{
    window.alert('Vorgang abgebrochen');
    }
    </script>
    ";

我怎么说,它不起作用,所以我只是没有确认就解决了。

很好奇为什么此解决方案不起作用。