javascript - 通过 php+ajax 在 html 表中更新第二个选择选项,其中通过 javascript 函数添加新行

标签 javascript php html mysql drop-down-menu

Image which is showing totally what i'm trying to do..

在此图像中,我通过 JavaScript 代码使用该按钮添加行:

function addRow(dataTable) {
    "use strict";
    var table = document.getElementById("dataTable");
    var rowCount = table.rows.length;
    if(rowCount < 100) {
        var row = table.insertRow(rowCount);
        var colCount = table.rows[0].cells.length;
        for(var i=0; i<colCount; i++) {
            var newcell = row.insertCell(i);
            newcell.innerHTML = table.rows[0].cells[i].innerHTML;
        }   
     } else {
        alert("En fazla 100 satır ekleyebilirsiniz.");
    }
}

而且我还通过这些代码更改第二个选择的选项值:

function fetch_select(val) {
    $.ajax({
        type: 'post',
        url: 'stoklari_cek.php',
        data: {get_option:val},
        success: function (response) {
            document.getElementById("sth_stok_kod").innerHTML=response; 
        }
    });
}

在表的第一行,我通过更改第一个选择来检索第二个选项的值。我需要做的是,当我使用“添加行”按钮添加时,它也可以在其他行中使用。我的意思是,当我将第二行添加到表中并更改第一个选择选项值时,第一行的第二个选择选项值正在更改。 但我需要更改第二行第二个选择选项的值。

最佳答案

尝试将 addRow 函数更改为以下内容。这里的想法是确保您创建的每一行都具有下拉列表(选择)的唯一 ID。

function addRow(dataTable) {
    var table = document.getElementById("dataTable");
    var rowCount = table.rows.length;
    if(rowCount < 100) {
        var row = table.insertRow(rowCount);
        var newrow = table.rows[0].cloneNode(true); // clone the first row
        var selects = newrow.getElementsByTagName('select'); // get all selects in row
        for(var i=0; i<selects.length;i++) {
            selects[i].id = Math.random().toString(36).slice(2); // generate random id's
        }
        table.appendChild(newrow);   
     } else {
        alert("En fazla 100 satır ekleyebilirsiniz.");
    }
}

在调用fetch_select的函数中,您必须获取要更改的第二个选择id。然后,您必须将此 id 作为 fetch_select 中的参数传递。因此,您的 fetch_select 也必须更改为类似这样的内容。

function fetch_select(val, select_id) {
    $.ajax({
        type: 'post',
        url: 'stoklari_cek.php',
        data: {get_option:val},
        success: function (response) {
            document.getElementById(select_id).innerHTML=response; 
        }
    });
}

关于javascript - 通过 php+ajax 在 html 表中更新第二个选择选项,其中通过 javascript 函数添加新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41040352/

相关文章:

Javascript 不会在按下回车键时提交,它只是清除文本框

javascript - 如何获取图像的实际尺寸

html - 试图让我的标题图片在 CSS 中覆盖左侧、顶部和右侧

php - 更改一个网站的 MySQL 服务器时间

php - 从 mysql 中提取值并以 php 形式编辑

php - 如何在 localhost + ubuntu 中测试 PHP Socket 编程

javascript - 单击时显示和隐藏图像

javascript - AngularJS:将数据从 ng-init 传递到 &lt;script&gt;

javascript - HTML 表格加载完成后调用 Javascript 函数

javascript - 网络音频 API,事件?