用onclick事件调用php函数?

时间:2018-06-05 07:20:19

标签: javascript php jquery

我想从数据库中删除项目。删除之前我想确认用户是否要删除。如果用户点击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']);
        }
    }
?>

5 个答案:

答案 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>