关于ajax和从表中识别数据的问题

时间:2016-11-19 15:23:28

标签: javascript jquery ajax

我正在拼命尝试通过按我网站上的DELETE按钮来访问$ BarcodeID。我想要做的只是检索这个13位数字,以便我可以用它从项目数据库(Sql)中删除该行。

我知道只要我得到正确的行我就可以得到数据,但我想知道那是否可能,因为我在$ .post()中构建表。

请注意,在我开始尝试制作按钮并在点击功能中获取barcodeID之前,所有代码都正常工作。谢谢!

$(document).ready(function(){
$.get("../php/security.php", function(response){
        if(response.result == "failure"){
            location.href='../user_login.html';
        } else {
            $("#header").load("../header_logout.html");
            $.post("../php/item_database.php", {email1:response.data.authUser}, function(indata){
                indata.items.forEach(function(element){
                    $BarcodeID = element.BarcodeID;
                    $UserID = element.UserID;
                    $ProductName = element.ProductName;
                    $BrandName = element.BrandName;
                    $Weight = element.Weight;
                    $row = "<tr><td id='rowbarcode'>" + $BarcodeID + "</td>" + "<td>" + $ProductName + "</td>" + "<td>" + $BrandName + "</td>" + "<td>" + $Weight + "</td>" + "<td>" + "<button class='delete'>Delete</button>" + "</td></tr>";
                    $("#final_row").before($row);
                });
            }, "json");//eo post
        } //eo else
 }, "json"); //eo get

$(".delete").click(function(){
    // var BarcodeID = $(this).closest('tr').find('#rowbarcode').val();
    var BarcodeID = $(this).parent().find("#rowbarcode").text();
    var $row = $(this).closest("tr");        // Finds the closest row <tr> 
    var $tds = $row.find("td:nth-child(1)"); // Finds the 2nd <td> element
    console.log($tds);
    //all I want is $BarcodeID
});

});//eof

现场表格图片: This is the table i created

1 个答案:

答案 0 :(得分:0)

对于任何有兴趣的人,我找到了解决问题的相当简洁的方法。感谢所有帮助@Pointy @Taplar @Andreas的人。我需要的是'动态创建元素的事件绑定'。当与$ .post和$ .get操作链接时,它特别有用,因为它们使数据复制变得复杂。

输出到控制台的示例:

5000157024671 &lt; - 如果我点击了第一个删除按钮

6221033101517 &lt; - 如果我点击了第二个删除按钮

下一阶段: 由于这只是对条形码编号的引用,必须从DB中删除,我现在将通过后期操作将其传递给php。

我的项目的下一部分(添加行搜索功能)可以在这里找到: Dynamically created table queries

示例解决方案代码:

$(document).ready(function(){
$.get("../php/security.php", function(response){
        if(response.result == "failure"){
            location.href='../user_login.html';
        } else {
            $("#header").load("../header_logout.html");
            //from here down is the relevant code
            $.post("../php/item_database.php", {email1:response.data.authUser}, function(indata){
                indata.items.forEach(function(element){
                    $BarcodeID = element.BarcodeID;
                    $UserID = element.UserID;
                    $ProductName = element.ProductName;
                    $BrandName = element.BrandName;
                    $Weight = element.Weight;
                    $row = "<tr class='row'><td class='rowbarcode'>" + $BarcodeID + "</td>" + "<td>" + $ProductName + "</td>" + "<td>" + $BrandName + "</td>" + "<td>" + $Weight + "</td>" + "<td>" + "<button class='delete'>Delete</button>" + "</td></tr>";
                    $("#final_row").before($row);
                });
            }, "json");//eo post
        } //eo else
 }, "json"); //eo get

$(".contenttable").on('click', '.delete', function(){
    var BarcodeID = $(this).closest('tr').find('.rowbarcode').text();
    console.log(BarcodeID);
});

}); // EOF