Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/366.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
Dynamicly使用javascript向html表中添加行_Javascript_Php_Html - Fatal编程技术网

Dynamicly使用javascript向html表中添加行

Dynamicly使用javascript向html表中添加行,javascript,php,html,Javascript,Php,Html,所以我一直在尝试构建一个html表。该表当前应具有的行数取决于用户音乐数据库中的歌曲数量。因此,我创建了一个PHP方法来计算XML文件中歌曲的数量。我向你保证,它工作得很好。PHP方法返回一个数字。 我将这个数字发送到我的JavaScript代码中,以便在html表中添加一行。希望这不会让人困惑。。。但它没有更新,我不知道为什么。请看一下我的代码 JavaScript方法 函数addRow(s,a,n){ 文件。写入(n); var table=document.getElementById(“

所以我一直在尝试构建一个html表。该表当前应具有的行数取决于用户音乐数据库中的歌曲数量。因此,我创建了一个PHP方法来计算XML文件中歌曲的数量。我向你保证,它工作得很好。PHP方法返回一个数字。 我将这个数字发送到我的JavaScript代码中,以便在html表中添加一行。希望这不会让人困惑。。。但它没有更新,我不知道为什么。请看一下我的代码

JavaScript方法
函数addRow(s,a,n){
文件。写入(n);
var table=document.getElementById(“myLibrary”);
//默认值为1
var numorrows=n;
var行=table.insertRow(numorrows);
var cell1=行插入单元格(0);
var cell2=行插入单元格(1);
var cell3=行插入单元格(2);
cell1.innerHTML=s;
cell2.innerHTML=a;
cell3.innerHTML=“删除”;
}
php方法
$num=numOfSongs($u);
回显“addRow(''.$s.'','.$a.'','.$num.');”;
这行代码:

table.insertRow(NumOfRows)
似乎假定insertRow()接受一个参数来创建多行。事实并非如此。它需要一个参数来偏移行的插入(在您的情况下,应该是-1以放在末尾)

您需要创建一个循环n次的for循环。在每个循环中,您将创建一个新行并插入单元格和数据

您的代码可能看起来像这样

function addRow(s,a,n){
    document.write(n);
    var table = document.getElementById("myLibrary");
    //default is 1
    for (var i = 0; i < n; i++) {
        var row = table.insertRow(-1);
        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);
        var cell3 = row.insertCell(2);
        cell1.innerHTML = s;
        cell2.innerHTML =a;
        cell3.innerHTML = "<button onclick='deleteRow(this)'>delete</button>";
    }
}
函数addRow(s,a,n){
文件。写入(n);
var table=document.getElementById(“myLibrary”);
//默认值为1
对于(变量i=0;i
示例:

upate## braks是正确的“似乎假定insertRow()使用一个参数来创建多行。事实并非如此。”虽然这段代码只是复制了同一行,但这并不是我希望未来读者了解的内容,但此链接对我帮助很大
文档。写入(n)将清除文档的全部内容。写入控制台或使用警报。我相信您对deleteRow()的使用也同样不正确。您可以使用I变量创建ID并执行类似的调用,或者使用I计算表行的索引。请不要引用,而是链接到相应的标准或规范,或访问以获取更多信息和示例。请注意,索引是可选的,如果省略,则默认为-1。嗨,RobG,请问我为什么不应该链接到w3schools?顺便说一句,它表明索引仅在某些浏览器中是可选的。这似乎是一个有用的信息(假设它不是完全错误的),实际上MDN也表明它并不总是可选的。非常感谢。
table.insertRow(NumOfRows)
function addRow(s,a,n){
    document.write(n);
    var table = document.getElementById("myLibrary");
    //default is 1
    for (var i = 0; i < n; i++) {
        var row = table.insertRow(-1);
        var cell1 = row.insertCell(0);
        var cell2 = row.insertCell(1);
        var cell3 = row.insertCell(2);
        cell1.innerHTML = s;
        cell2.innerHTML =a;
        cell3.innerHTML = "<button onclick='deleteRow(this)'>delete</button>";
    }
}