javascript - PHP jQuery HTML - 获取自定义 HTML 属性

标签 javascript php jquery html ajax

我有一个 PHP 文件,它列出系统中的所有订单,并将自定义属性 oid (order-id) 添加到所有链接。我的链接如下所示:

<a href='#' class='completeOrder' oid='$order_id'>$status</a>

这给出了正确的 html,当我检查元素时我得到了这个

<a href='#' class='completeOrder' oid='8'>Un-completed</a>

我想做的是,当单击此链接时,生成一个带有复选框的表单和一个提交按钮,其中要发送的 html 中包含正确的订单 ID。因此我可以将表单和订单 ID 发送到另一个 PHP 文件进行处理(在本例中更新订单状态)。

我正在使用 jQuery AJAX 调用来生成带有复选框的表单,但是当我尝试提醒订单 ID 以检查 jQuery 是否正确获取了 oid 时,它告诉我其未定义...:

$("body").delegate(".completeOrder", "click", function(event) {
    event.preventDefault();
    getCompleteOrderTools();

    $(".content").toggleClass("hidden");
    $('div.hidden').fadeIn(800).removeClass('hidden');
    $("#notifications-drop").toggleClass('hidden');
});

function getCompleteOrderTools() {
    var o_id = $(this).attr('oid');
    alert(o_id);

    $.ajax({
        url:   "action.php",
        method: "POST",
        data: {
            getCompleteOrderTools: 1,
            orderId: o_id
        },
        success: function(data) {
            $(".row").append(data);
        },
    });
}

最佳答案

您的主要问题是您正在引用 this在错误的上下文中如this在您的函数中可用 getCompleteOrderToolsthis 不同您想要引用所需链接的点击事件。

您有 2 个选择:

要么使用jQuery(this).attr('oid');

或者

使用jquery data属性

<a href='#' class='completeOrder' data-oid='$order_id'>$status</a>

jQuery(this).data('oid');

所以你的代码是 .attr看起来像:

$("body").delegate(".completeOrder", "click", function(event) {
    event.preventDefault();

    var myThis = $(this);//This is the 'this' corresponding to the link clicked

    getCompleteOrderTools(myThis);

    $(".content").toggleClass("hidden");
    $('div.hidden').fadeIn(800).removeClass('hidden');
    $("#notifications-drop").toggleClass('hidden');
});

function getCompleteOrderTools(myThis) {

    var o_id = myThis.attr('oid');
    alert(o_id);

    $.ajax({
        url:   "action.php",
        method: "POST",
        data: {
            getCompleteOrderTools: 1,
            orderId: o_id
        },
        success: function(data) {
            $(".row").append(data);
        },
    });
}

关于javascript - PHP jQuery HTML - 获取自定义 HTML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40739833/

相关文章:

javascript - 如何从 MomentJS 获取 DST 金额

php - 如何在php中通过ldap获取事件目录的密码?

php - Kohana、.htaccess 和 $_GET

javascript - 当 .on() 函数满足另一个 .on() 函数的条件时,如何覆盖或停止它?

带有参数和返回值的 Javascript 回调

javascript - Jquery, 'invalid or unexpected token'。不是字符串问题

php - 无法更改 php 中的日期格式

javascript - jQuery 不适用于 Materialise CSS 中的导航栏

javascript - 使用 Ajax 仅检索数据库中的数据之间如何更好地从 html 结构中的数据库检索数据?

javascript - 似乎无法将列表 float 到 Bootstrap 4 行内的右侧