2013-01-11 3 views
0

HTML 페이지에 php를 사용하여 표를 표시하고 있습니다. 셀 내용을 편집하고 싶습니다 (기본적으로 값을 변경하고 아약스 호출로 데이터베이스를 업데이트합니다). 나를위한 요구 사항은 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>"; 
} 

자바 스크립트 방법

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

} 

답변

0

HTML에서 업데이트 가치 (ID)부터 까지 업데이트 밸류 (this.id);

다음을 updateValue 함수의 첫 번째 if 문 안에 넣습니다. 코드에서

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

감사합니다. Anthony. 나는 그것이 단지 경고 (x.innerText)로 작동하도록했다. – Dhruv

+0

그래, x.innerText 때문에 Firefox에서 코드가 작동하지 않는다는 것을 알았습니다. 그래서 x.textContext로 변경했습니다. – Dhruv

0

테이블 셀의 "값이"실제로 자바 스크립트에 의한 값으로 간주되지 않습니다, 그냥 HTML입니다. 경고 x.innerText을 시도하십시오. 셀 내용을 ID별로 얻으려면 this question을 참조하십시오.

또한 모든 사람이이 사실을 듣는 것을 싫어하지만, jQuery을 사용하면 훨씬 쉽게 이해할 수 있습니다.

+0

그게 효과가 있습니다. 음색을 고맙다 !!! – Dhruv

0

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

x는 객체, 당신은 값을 변경하거나 값을 얻기 위해 필요한 함수를 작성해야합니다.

alert(x.innerHTML); 

은 셀 값을 제공합니다.

HTML td 태그에 언급 된 ID와 getElementById의 ID가 일치하지 않습니다. (브라우저에서 사용 오류 콘솔은 자바 스크립트 오류를 ​​얻을 수 있습니다)

당신이

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 –

관련 문제