我想从数据库中删除项目。在删除之前,我想确认用户是否要删除。如果用户单击“确定”,则必须调用删除函数。但是在代码中,当用户单击该函数时,会调用该函数用户不仅单击“确定”,还单击“取消”。对于其他 alter 语句,它工作正常。仅对于调用 php 函数,它会出现问题。
我该如何解决这个问题?
代码是,
<a href="http://localhost/Performance/project/ShowAllProjects.php?project_id='.$row['project_id'].'"><img src="http://localhost/performance/css/delete.png" title="delete" alt="running test" style="width:15px;height:15px;border:0;margin-left:1cm" Onclick="deleteProject();"/></a>
<script>
function deleteProject() {
var r = confirm("Press a button!");
if (r == true) {
//alert("You pressed OK!");
alert("<?php confirmDelete(); ?>");
} else {
alert("You pressed Cancel!");
}
}
</script>
<?php
function confirmDelete(){
$sql="DELETE FROM project_table WHERE project_id='".$_GET['project_id']."' AND member_id='".$_SESSION['user_id']."';";
if(mysqli_query($GLOBALS['db'], $sql)) {
echo "Your test deleted successfully";
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($GLOBALS['db']);
}
}
?>
最佳答案
如果可能的话,您应该尝试从您的 View 中删除您的 PHP。如果您将 PHP 函数移至单独的 PHP 文件中并使用 AJAX 调用它们,则可以根据需要在不同页面上重用代码。
这尚未经过完全测试,但我想说这将是一个更干净的解决方案。
为您删除的图像添加一个 ID:
<img id="delete" src="" title="delete" alt="running test" style="width:15px;height:15px;border:0;margin-left:1cm" onclick="deleteProject()"/>
更改您的 JavaScript 以使用 AJAX 调用 PHP 脚本:
$( document ).on( 'click', '#delete', function(){
var r= confirm("Press a button!");
if (r==true)
{
$.ajax({
url: '<?php echo LOCATION_OF_PHP_SCRIPT; ?>',
type: 'post',
data: DATA_IF_NEEDED
}).success( resp )
{
if( resp == TRUE )
{
alert( "Deleted" );
}
}
}
else
{
alert("You pressed Cancel!");
}
})
您将需要调整一些参数以适合您的应用程序,但应该可以让您继续使用。
关于javascript - 通过 onclick 事件调用 php 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50694311/