[英]Call php function with onclick event?
我想从数据库中删除项目。删除之前我想确认用户是否要删除。如果用户点击确定它必须调用删除功能。但是在用户单击该功能的代码中,不仅用户被调用点击ok,但也点击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']);
}
}
?>
如果可能,您应该尝试从您的视图中删除您的 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
运行php
代码。 JavaScript
是客户端, php
是服务器端。
您必须创建一个脚本deleteThings.php
来删除您想要的内容并使用异步Ajax
请求从客户端的JavaScript
调用它。
对于异步Ajax
请求,您可以使用jQuery 、vanilla JavaScript
或其他库。
使用 ajax 从 JAVASCRIPT 函数调用 PHP 函数。
检查下面的代码。
$.ajax({
type: "POST",
url: 'your_functions.php',
dataType: 'json',
data: {functionname: 'delete'},
success: function (obj, textstatus) {
}
})
your_functions.php
只需按照此代码即可实现使用 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>
单击 div 时,函数 read 将执行并给出 hi
<?php
function read($id){
echo $id;
}
?>
<div onclick="<?php read("hi"); ?>" class="item">
</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.