Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP-使用按钮删除数据_Php_Jquery_Ajax_Button - Fatal编程技术网

PHP-使用按钮删除数据

PHP-使用按钮删除数据,php,jquery,ajax,button,Php,Jquery,Ajax,Button,我试图创建一个HTML表,列出数据库表中的所有行。然后,在每一行旁边我想有一个按钮,以便用户可以删除该条目。我已经创建了表,但是我无法让按钮工作 我一直在四处搜索,我找到了这篇文章,但我无法让它发挥作用。我以前从未使用过ajax,因此可能无法正确理解代码 代码如下: 浏览表格中的所有数据,并为每个条目创建一个按钮 <?php for ($x = 0; $x < sizeof($data); $x++) { ?> <input type="submit" clas

我试图创建一个HTML表,列出数据库表中的所有行。然后,在每一行旁边我想有一个按钮,以便用户可以删除该条目。我已经创建了表,但是我无法让按钮工作

我一直在四处搜索,我找到了这篇文章,但我无法让它发挥作用。我以前从未使用过ajax,因此可能无法正确理解代码

代码如下:

浏览表格中的所有数据,并为每个条目创建一个按钮

<?php
for ($x = 0; $x < sizeof($data); $x++) {
?>
     <input type="submit" class="tableButton" name="<?php echo $x ?>" value="<?php echo $x ?>">
<?php
}    
?>
ajax.php

$('.tableButton').click(function () {
    var clickBtnValue = $(this).val();
    var ajaxurl = 'ajax.php',
    data = { 'action': clickBtnValue };
    $.post(ajaxurl, data, function (response) {
    });
});
<?php
   /* AJAX check  */
   if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {

       $delete_id = $_POST["id"];
       if( is_numeric( $delete_id ) ){

            /*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
            /* $affected_rows = effected_rows() */

            if( $affected > 0 ) 
            {
                echo json_encode( array("status" => true ) );die;
            }

        }
        echo json_encode( array("status" => false ) );die;
     }
     die("Get out of here!");
?>
获取所按下按钮的值,并对其进行操作

<?php
if (isset($_POST['action'])) {
    $data = $_POST['action'];
    echo $data;
}
?>
$(document).ready(function(){

    $(".delete_row").click(function(e){

        e.preventDefault();
        var deleteId = $(this).attr("data-id");//unique id of the raw to be deleted

        var request = $.ajax({
        url: "ajax.php",
        type: "POST",
        data: { id : deleteId },
        dataType: "json"
        });
        request.done(function( msg ) {

           if( msg.status )
               alert("Deleted successfully!");
           else
               alert("Something gone wrong!!");
        });
        request.fail(function( jqXHR, textStatus ) {
           alert( "Request failed: " + textStatus );


        });

    });


});
或者如果有人知道更好的方法,请告诉我

编辑

<?php
if (isset($_POST['action'])) {
    $data = $_POST['action'];
    echo $data;
}
?>
$(document).ready(function(){

    $(".delete_row").click(function(e){

        e.preventDefault();
        var deleteId = $(this).attr("data-id");//unique id of the raw to be deleted

        var request = $.ajax({
        url: "ajax.php",
        type: "POST",
        data: { id : deleteId },
        dataType: "json"
        });
        request.done(function( msg ) {

           if( msg.status )
               alert("Deleted successfully!");
           else
               alert("Something gone wrong!!");
        });
        request.fail(function( jqXHR, textStatus ) {
           alert( "Request failed: " + textStatus );


        });

    });


});
在做了更多的搜索之后,我发现了为什么这不能达到我的预期效果。正如我所怀疑的,因为我以前从未使用过AJAX,所以我不知道echo不会直接打印到屏幕上。我只是把echo改成了delete查询,并对其进行了测试,结果证明它是有效的。。。所以代码很好,但我想我应该找个时间学习AJAX。谢谢你的回复


我也知道sql注入在这里是可能的,这只是一个快速的模型,谢谢。

从我们的角度来看,很难帮助您

您应该进行一些调试,如:

  • 检查是否调用了关联的ajax.php(例如,通过使用“F12”检查控制台)
  • 如果是,请检查通过ajax帖子传递的数据
  • 如果不是,可能参考链接是错误的

  • 让我听听你得到了什么。

    从我们的观点来看,很难帮助你

    您应该进行一些调试,如:

  • 检查是否调用了关联的ajax.php(例如,通过使用“F12”检查控制台)
  • 如果是,请检查通过ajax帖子传递的数据
  • 如果不是,可能参考链接是错误的

  • 让我听听你得到了什么。

    从我们的观点来看,很难帮助你

    您应该进行一些调试,如:

  • 检查是否调用了关联的ajax.php(例如,通过使用“F12”检查控制台)
  • 如果是,请检查通过ajax帖子传递的数据
  • 如果不是,可能参考链接是错误的

  • 让我听听你得到了什么。

    从我们的观点来看,很难帮助你

    您应该进行一些调试,如:

  • 检查是否调用了关联的ajax.php(例如,通过使用“F12”检查控制台)
  • 如果是,请检查通过ajax帖子传递的数据
  • 如果不是,可能参考链接是错误的

  • 让我听听你得到了什么。

    好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它

    <input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />  
    
    ajax.php

    $('.tableButton').click(function () {
        var clickBtnValue = $(this).val();
        var ajaxurl = 'ajax.php',
        data = { 'action': clickBtnValue };
        $.post(ajaxurl, data, function (response) {
        });
    });
    
    <?php
       /* AJAX check  */
       if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    
           $delete_id = $_POST["id"];
           if( is_numeric( $delete_id ) ){
    
                /*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
                /* $affected_rows = effected_rows() */
    
                if( $affected > 0 ) 
                {
                    echo json_encode( array("status" => true ) );die;
                }
    
            }
            echo json_encode( array("status" => false ) );die;
         }
         die("Get out of here!");
    ?>
    
    
    

    我希望这能帮助你:)

    好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它

    <input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />  
    
    ajax.php

    $('.tableButton').click(function () {
        var clickBtnValue = $(this).val();
        var ajaxurl = 'ajax.php',
        data = { 'action': clickBtnValue };
        $.post(ajaxurl, data, function (response) {
        });
    });
    
    <?php
       /* AJAX check  */
       if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    
           $delete_id = $_POST["id"];
           if( is_numeric( $delete_id ) ){
    
                /*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
                /* $affected_rows = effected_rows() */
    
                if( $affected > 0 ) 
                {
                    echo json_encode( array("status" => true ) );die;
                }
    
            }
            echo json_encode( array("status" => false ) );die;
         }
         die("Get out of here!");
    ?>
    
    
    

    我希望这能帮助你:)

    好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它

    <input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />  
    
    ajax.php

    $('.tableButton').click(function () {
        var clickBtnValue = $(this).val();
        var ajaxurl = 'ajax.php',
        data = { 'action': clickBtnValue };
        $.post(ajaxurl, data, function (response) {
        });
    });
    
    <?php
       /* AJAX check  */
       if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    
           $delete_id = $_POST["id"];
           if( is_numeric( $delete_id ) ){
    
                /*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
                /* $affected_rows = effected_rows() */
    
                if( $affected > 0 ) 
                {
                    echo json_encode( array("status" => true ) );die;
                }
    
            }
            echo json_encode( array("status" => false ) );die;
         }
         die("Get out of here!");
    ?>
    
    
    

    我希望这能帮助你:)

    好的。首先,您需要创建具有行id的按钮。您可以使用mySQL和PHP循环来完成。按以下格式创建它

    <input type="submit" name="test" data-id="23" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="24" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="25" value="Remove" class="delete_row" />            
    <input type="submit" name="test" data-id="26" value="Remove" class="delete_row" />  
    
    ajax.php

    $('.tableButton').click(function () {
        var clickBtnValue = $(this).val();
        var ajaxurl = 'ajax.php',
        data = { 'action': clickBtnValue };
        $.post(ajaxurl, data, function (response) {
        });
    });
    
    <?php
       /* AJAX check  */
       if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    
           $delete_id = $_POST["id"];
           if( is_numeric( $delete_id ) ){
    
                /*DELETE QUERT WHERE id = $delete_id (Try to use mysqli or PDO ) */
                /* $affected_rows = effected_rows() */
    
                if( $affected > 0 ) 
                {
                    echo json_encode( array("status" => true ) );die;
                }
    
            }
            echo json_encode( array("status" => false ) );die;
         }
         die("Get out of here!");
    ?>
    
    
    

    我希望这能对你有所帮助:)

    你可以用这种方法试试。我想这会对你有帮助

    Html文件

    
    试验
    $('.tableButton').live('单击',函数()){
    var id=$(this.val();
    $.ajax({
    url:'ajax.php'
    ,数据:{id:id}
    ,类型:'post'
    ,成功:函数(数据){
    如果(数据==“成功”){
    $('#'+id).remove();
    }
    }
    });
    });
    
    你可以这样试试。我想这会对你有帮助

    Html文件

    
    试验
    $('.tableButton').live('单击',函数()){
    var id=$(this.val();
    $.ajax({
    url:'ajax.php'
    ,数据:{id:id}
    ,类型:'post'
    ,成功:函数(数据){
    如果(数据==“成功”){
    $('#'+id).remove();
    }
    }
    });
    });
    
    你可以这样试试。我想这会对你有帮助

    Html文件

    
    试验
    $('.tableButton').live('单击',函数()){
    var id=$(this.val();
    $.ajax({
    url:'ajax.php'
    ,数据:{id:id}
    ,类型:'post'
    ,成功:函数(数据){
    如果(数据==“成功”){
    $('#'+id).remove();
    }
    }
    });
    });
    
    你可以这样试试。我想这会对你有帮助

    Html文件

    
    试验
    $('.tableButton').live('单击',函数()){
    var id=$(this.val();
    $.ajax({
    url:'ajax.php'
    ,数据:{id:id}
    ,类型:'post'
    ,成功:函数(数据){
    如果(数据==“成功”){
    $('#'+id).remove();
    }
    }
    });
    });
    
    这是一个很好的SQL注入漏洞。@André:值得称赞的是:至少OP知道
    isset
    。。。对于OP:如果用户将按钮的值更改为“%”,在查询中使用该值会给出:
    DELETE FROM myTable WHERE id=“%”
    ,这不是您所说的安全,是吗?这里有一个很好的示例,演示了一个防注入语句,您几乎可以将其复制/粘贴到PHP代码中,而不是
    echo$data
    ,并调整查询。您给出的代码不应该显示任何内容,因为您对post请求的
    response
    不做任何操作,这是一个很好的SQL注入漏洞。@André:值得称赞的地方:至少OP知道
    isset
    。。。对于OP:如果用户将按钮的值更改为“%”,则在查询中使用该值将给出:
    DELETE FROM myTable WHERE