从表格单元格获取已编辑的单元格值

时间:2013-01-11 01:44:38

标签: php javascript jquery ajax database

我在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");

}

3 个答案:

答案 0 :(得分:0)

表格单元格的“值”实际上并不是javascript的值,它只是HTML。尝试提醒x.innerText。有关按ID获取单元格内容,请参阅this question

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

答案 1 :(得分:0)

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

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

if(x.innerText){
    alert(x.innerText);
} else {
    // Firefox support
    alert(x.textContent);
}

答案 2 :(得分:0)

在您的代码中

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

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

alert(x.innerHTML);

将为您提供单元格的值。

我在HTML td标记中提到过,并且你的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,它使您的任务变得简单:)