0

可能有按钮子php页面。我想提交按钮的值和使用该值从表中删除记录。Ajaxz 代码是

$('#product-table td #delete').live("click", function () {
                var doDelete = confirm('Are you sure you want to delete this record?');
                deleteLinkObj = $(this);

                if (doDelete) {


                    var id = $(this).attr('accesskey');
        $("#deleteid").val(id); 
        $.ajax({
                    url: "purchase.php",
                    data: {deleteid:id},
                    dataType: 'html',
                    success: function() {

                    }
                });


                }
                else { return false; }
                });

在 PHP 上,我正在尝试使用 deleteid 的值,但它没有到来的 PHP 代码是

if(@$_POST['deleteid']!="")
                    {
                    $sql="delete from purchasedetails where purchaseid='".$_POST['deleteid']."'";
                    if(!mysql_query($sql))
                            {
                            die('Error: ' . mysql_error());
                            }
                            else
                            {
                            $msg="Data is deleted";
                            }
                    }   

我试过使用 isset($_POST['deleteid']) 然后它也显示错误

4

2 回答 2

1

默认情况下 $.ajax 将类型作为 GET,因此您需要在代码中定义类型

你可以试试这样的$.ajax语法 -

    $.ajax({
                url: "purchase.php",
                data: $("#deleteid").val(id),
                type: POST
                dataType: 'html',
                success: function() {
于 2013-01-03T09:01:08.123 回答
1

在您的 ajax 调用中,您没有将请求方法设置为POST,因此它将默认为GET,这就是您的 post var 永远不会出现的原因:

    $.ajax({
                type: 'POST',
                url: "purchase.php",
                data: {deleteid:id},
                dataType: 'html',
                success: function() {

                }
            });

作为 SQL 注入漏洞的快速修复,您可以将 id 强制转换为int,但您应该考虑升级到 PDO 或 MySQLi,因为您使用的库已弃用。

$sql="delete from purchasedetails where purchaseid='".(int)$_POST['deleteid']."'";

将你purchaseid作为元素存储 accesskey 不是最好的地方,它作为一个data-myid属性会更好,所以你可以使用$(this).data('myid').

于 2013-01-03T09:02:16.733 回答