0

我在 html 页面上使用 php 显示表格。我想编辑单元格内容(基本上是对值进行更改,并进行 ajax 调用以更新数据库)。我的要求是使用 onblur 功能(我也可以使用 onkeypress 来解决)。谁能告诉我用单元格ID输入新值的最简单方法是什么?

x 的警报告诉我它的“对象 HTMLTableCellElement”

谢谢!!!

foreach($_RESPONSE['VENDOR_LIST'] as $r){
     echo  "<tr><td>".$r['fdEmail']."</td><td id='companyname_".$r['fdId']."' contenteditable='true' onblur='updateValue(id)';>".$r['fdCompanyName']." ".$r['fdId']."</td></tr>";
}

Javascript 方法

function updateValue(thisdata){
        alert(""+thisdata);
    var x=document.getElementById(""+thisdata);
    if(x){
        alert(x);
        //var r = x.value;
    }
    else
            alert("not found");

}
4

3 回答 3

0

表格单元格的“值”实际上并不被 javascript 视为值,它只是 HTML。尝试警报x.innerText。有关按 ID 获取单元格内容的信息,请参阅此问题。

另外,我知道每个人都讨厌听到这个,但是使用jQuery会更容易。

于 2013-01-11T01:50:48.273 回答
0

在您的 HTML 中,将updateValue(id)更改为updateValue(this.id)

然后将其放在 updateValue 函数中的第一个 if 语句中。

if(x.innerText){
    alert(x.innerText);
} else {
    // Firefox support
    alert(x.textContent);
}
于 2013-01-11T01:53:00.423 回答
0

在您的代码中

var x=document.getElementById(""+thisdata);

这里 x 是一个对象,您需要编写所需的函数来更改值或获取值。

alert(x.innerHTML);

会给你单元格的值。

HTML td 标记中提到的 ID 与您的 getElementById deos 中的 id 不匹配。(使用浏览器中的错误控制台获取 javascript 错误)

您可能必须像这样更改您的功能

function updateValue(thisdata){
    var x=document.getElementById("companyname_"+thisdata);
    if(x){
        alert(x.innerHTML);
    }
    else
            alert("not found");

}

您的 HTML 代码:

foreach($_RESPONSE['VENDOR_LIST'] as $r){
     echo  "<tr><td>".$r['fdEmail']."</td>
                <td id='companyname_".$r['fdId']."' contenteditable='true' onblur="updateValue('companyname_".$r['fdId']."');">".$r['fdCompanyName']." ".$r['fdId']."</td></tr>";
}

注意:我没有测试过代码,请做出相应的更改,如果你觉得有困难,请在此处发布:)

始终使用 jQuery,它使您的任务变得简单 :)

于 2013-01-11T04:40:29.533 回答