我的代码示例:
<form action="test.php" method="GET">
<input type="text" name="Delete_This" value="<?php if (isset($_GET['Delete_This'])) echo $_GET['Delete_This']?>">
<input type="submit" name="Deleting" value="Delete this">
<?php
// If the deleting button is pressed
if (isset($_GET['Deleting']))
{
$DeleteThis = $_GET['Delete_This'];
?>
<script type='text/javascript'>
if (confirm('Are you sure you want to delete <?php echo $DeleteThis ?> ?'))
alert('<?php echo $DeleteThis ?> deleted');
<?php
$sql_delete="DELETE FROM table WHERE Name like '".$DeleteThis ."'";
mysqli_query($db,$sql_delete);
?>
else
alert('Not deleted');
</script>
<?php } ?>
</form>
确认框正确打开。我的问题是,无论我点击确定还是取消,$sql_delet
被执行。
我知道我应该在顶部使用 Javascript <head>
我的文档,但如果我这样做,我将无法执行删除查询,我必须警告用户他要删除什么。 {$DeleteThis}
工作正常。我还使用了onclick
input
上的函数但我不能使用{$DeleteThis}
.
综合:我想要,如果confirm
框被取消,查询不会被执行,我必须在 confirm
中使用 php 变量和alert
.
最佳答案
您可能想了解服务器端语言和客户端语言之间的区别。
您放入 php 代码中的所有内容都会在 html 和 javascript 代码发送到用户浏览器之前执行。
相比之下,您在 javascript 代码中放入的所有内容都不再影响 php 代码。
因此,您的代码中发生的情况是,php 首先检查是否存在 $_GET['Deleting']
变量。如果有的话,它会找到一些 html 和 javascript,并记住稍后应该将其输出到浏览器。然后它执行删除查询。完成后,它会将以下 javascript(以及任何周围的 html)发送到浏览器:
<script type='text/javascript'>
if (confirm('Are you sure you want to delete your-deletion-value ? \nHey'))
alert('your-deletion-value deleted');
else
alert('Not deleted');
</script>
所以希望您能看到两者之间的脱节。
关于javascript - 使用 php var 确认删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30344723/