我想从数据库中删除项目。删除之前我想确认用户是否要删除。如果用户点击okay则必须调用delete函数。但是在用户点击该函数时代码被调用不仅用户点击okay而且还点击concel。对于其他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']);
}
}
?>
答案 0 :(得分:1)
如果可能,您应该尝试从视图中删除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!");
}
})
您需要调整一些参数以适合您的应用,但应该让您前进。
答案 1 :(得分:0)
您无法从php
运行JavaScript
代码。 JavaScript
是客户端,php
是服务器端。
您必须创建一个删除所需内容的脚本deleteThings.php
,并使用异步JavaScript
请求从客户端Ajax
调用它。
对于异步Ajax
请求,您可以使用jQuery,vanilla JavaScript
或其他库。
答案 2 :(得分:0)
使用ajax从JAVASCRIPT函数调用PHP函数。
检查以下代码。
$。AJAX({
type: "POST",
url: 'your_functions.php',
dataType: 'json',
data: {functionname: 'delete'},
success: function (obj, textstatus) {
}
})
your_functions.php
答案 3 :(得分:0)
只需按照此代码实现使用jQuery ajax调用即可。 这是包含jQuery的HTML代码,我在同一目录中使用了test.php文件。只需在test.php文件中编写PHP函数即可。最后,在用户按下确认后,响应将显示在给定的div中。
<!DOCTYPE html>
<html>
<head>
<title>Jquery ajax</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<button onclick="myFun()">Click me</button>
<div id="div1"></div>
<script>
function myFun(){
var r= confirm("Press a button!");
if (r==true)
{
$.ajax({url: "test.php", success: function(result){
$("#div1").html(result);
}});
}
else
{
alert("You pressed Cancel!");
}
}
</script>
</body>
</html>
答案 4 :(得分:0)
在div上单击后,读取的函数将执行并显示hi
<?php
function read($id){
echo $id;
}
?>
<div onclick="<?php read("hi"); ?>" class="item">
</div>