Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.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
Javascript 如何使用php、AJAX或MySQL使delete按钮以正确的ID完全正常工作?_Javascript_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Javascript 如何使用php、AJAX或MySQL使delete按钮以正确的ID完全正常工作?

Javascript 如何使用php、AJAX或MySQL使delete按钮以正确的ID完全正常工作?,javascript,php,jquery,mysql,ajax,Javascript,Php,Jquery,Mysql,Ajax,我对此有一个小问题,每个删除按钮都应该删除自己id的记录。如果我们单击164,它必须删除164的记录。如果我删除ajax并要求表单直接验证,它可以正常工作,但是如果我使用ajax,它只会删除第一条记录,而不管我按什么按钮。例如,在当前场景中,即使我按164按钮,它也会删除159条记录。我的代码给出了以下输出:请记住,如果我要求表单直接从其他PHP文件进行验证,那么效果很好。 尝试var delete_id=$(event.target).val()而不是:var delete_id=$('#d

我对此有一个小问题,每个删除按钮都应该删除自己id的记录。如果我们单击164,它必须删除164的记录。如果我删除ajax并要求表单直接验证,它可以正常工作,但是如果我使用ajax,它只会删除第一条记录,而不管我按什么按钮。例如,在当前场景中,即使我按164按钮,它也会删除159条记录。我的代码给出了以下输出:请记住,如果我要求表单直接从其他PHP文件进行验证,那么效果很好。


尝试
var delete_id=$(event.target).val()而不是:
var delete_id=$('#delete_id').val()

第一个ID必须唯一,以便使用

class="delete_id"
而不是

id="delete_id"
第二次删除
onclick=“vlid();”
并使用

$(document).ready(function(){
    $('body').on('click','.delete_id',function(){
       var getValue = parseInt($(this).val());
       $.post('validator.php',{postdelete_id : getValue},function(data){
          $('#del').html(data);
       });
    });
});
并删除删除使用的tr

$(document).ready(function(){
        $('body').on('click','.delete_id',function(){
          var thisBtn = $(this);
          var getValue = parseInt(thisBtn .val());
           $.post('validator.php',{postdelete_id : getValue},function(data){
              $('#del').html(data);
              thisBtn.closest('tr').remove();
           });
        });
    });

问题是,在vlid()函数中,JQuery只选择id=delete\u id的第一个元素。我会尝试将id传递给vlid()函数,如下所示:

<input type="button" ... onclick="vlid(<?php echo $row['ID'];?>)"/>

是。我完全按照你现在建议的方式试过了。它甚至不能通过这样做获得值。在输入代码后,我键入了警报(删除\u id),以确保它获得正确的id。感谢您的帮助,但它不起作用。更新后,您应该使用
$(event.target)
而不是
$(this)
,抱歉,我的错误。我已经测试过了,它对我很有用。非常感谢。你解决了我的问题。好吧,现在我想记录消失或立即消失时,他们被删除,而不刷新页面。你能帮我吗?如果您很忙或不感兴趣,可以100%地说“不”。只需重复使用相同的元素并调用:
$(event.target).closest('tr').hide()隐藏整行。你真是天才。你用一条普通的线解决了我的问题。我已经在facebook和quora等几个地方描述了同样的问题。我得到了如此奇怪的答案,以至于我开始挠头。这是如此简单,人们一直建议我编写更多的页面。我对你的帮助感激不尽。不过,我会记住其他问题。我不能推翻你的答案对不起。名声不好。:)
$(document).ready(function(){
        $('body').on('click','.delete_id',function(){
          var thisBtn = $(this);
          var getValue = parseInt(thisBtn .val());
           $.post('validator.php',{postdelete_id : getValue},function(data){
              $('#del').html(data);
              thisBtn.closest('tr').remove();
           });
        });
    });
<input type="button" ... onclick="vlid(<?php echo $row['ID'];?>)"/>