我在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');
}
}
?>
答案 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代码:
<?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;
的Javascript
<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;
答案 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>
";
我怎么说,它不起作用,所以我只是没有确认就解决了。
很好奇为什么此解决方案不起作用。