2013-01-11 77 views
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"); 

} 

回答

0

在您的HTML内容中,修改updateValue(id)updateValue(this.id);

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

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

谢谢安东尼。我使用alert(x.innerText)工作。 – Dhruv

+0

是的,我刚刚发现我的代码不会在Firefox中工作,因为x.innerText,所以我改为x.textContext。 – Dhruv

0

的表格单元格中的 “价值” 实际上没有考虑通过JavaScript中的值,它只是HTML。尝试提醒x.innerText。请参阅this question通过ID获取单元格内容。

此外,我知道每个人都不喜欢听到这个消息,但是使用jQuery会更容易。

+0

工作。感谢口气!!! – Dhruv

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,它使您的任务变得简单:)

+0

很多人说jQuery让生活变得容易多了。它只是说我对前端的东西不太舒服。例如现在,我坚持如何显示一个工具提示,当我mouseOver一个标签作为我遇到过的所有例子使用jQuery: -/ 感谢您的帮助,虽然 – Dhruv

+0

一开始您会觉得很困难,一旦您习惯了它,你会爱上它:D –