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

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

表のセルの「値」は、JavaScript では実際には値とは見なされず、単なる HTML です。警告してみてくださいx.innerText。ID でセルの内容を取得するには、この質問を参照してください。

また、誰もがこれを聞くのを嫌っていることは知っていますが、これはjQueryを使用するとはるかに簡単になります。

于 2013-01-11T01:50:48.273 に答える
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 に答える