0

私は自分の能力を超えたコーディングを担当している開発者と一緒に仕事をしています。主にPHPとより複雑なJavascript(私はjQueryでしか大丈夫ではありません)。

開発者が行っている作業の一部には、データベースをチェックし、結果をページに動的に入力することが含まれます。問題は、現在これらの結果がに入力されていること<textarea>です。これは、読み取り専用の場合、ユーザーが気が変わっても結果を削除できないことを意味するため、理想的ではありません。読み取り専用でない場合、ユーザーはテキストエリアに好きなテキストを入力して、ページを使用できなくすることができます。さらに、テキストエリア内の結果にCSSを適用できません。

また、開発者は私のペットの嫌いなものの1つであるテーブルを使用しています。

<textarea>代わりに、見つかったデータベースの結果ごとに<div>を含むようにしたいと思います。<div>

開発者は現在数週間不在であり、私はこれを後でではなく早く終わらせたいと思っています。「td」を単に「div」に変更しようとしましたが、明らかにうまくいきませんでした。

助けていただければ幸いです。以下のコードを含めました。残念ながら、ライブ/テストサイトへのアクセスを(私の制御を超えて)許可することができず、そのことをお詫びします。

if(answer)
{

var newRow = document.getElementById("target_table");
var Row = newRow.rows.length;   
var row1 = newRow.insertRow(Row);
var index=row1.rowIndex;
var td1= document.createElement("TD")
var td2= document.createElement("TD")
td2.innerHTML =  "

<INPUT TYPE='hidden' NAME='course"+Row+"' id='course"+Row+"' value='"+answer+"'>
<INPUT TYPE='hidden' NAME='ary"+Row+"' id='ary"+Row+"'>
<INPUT TYPE='hidden' NAME='Dary"+Row+"' id='Dary"+Row+"'>
<p class='courseName'>"+answer+"</p>
<div id='boxRw"+Row+"' class='boxyHolder'>

    <TABLE border=1 cellspacing=2>
        <TR>
            <TD>
                <INPUT TYPE='button' name='Add a favourite to this course' value='Add a favourite to this course' onclick='javascript: window.open(\"<?=$path?>add-my-favourites/"+Row+"\",\"mywindow\",\"left=550,top=200,width=400,height=350,toolbar=1,resizable=0\");'>
            </TD>
        </TR>
        <tr>
            <td colspan=2>
                <TABLE border=1>
                    <TR>
                        <TD valign=top>Favourites:</TD>
                        <TD>
                            <TEXTAREA class='fav-box' NAME='reps"+Row+"' id='reps"+Row+"' ROWS=4 COLS=45></TEXTAREA>
                            <input class='fav-box' TYPE='hidden' NAME='repsId"+Row+"' id='repsId"+Row+"' value=''>
                        </TD>
                    </TR>
                </TABLE>
            </td>
        </tr>

    </TABLE>

</div>"; 

row1.appendChild(td1);
row1.appendChild(td2);

document.getElementById("h").value=Row;
}

function setVal(){
    var r = "<?=$_GET['hVal']?>";
    var y = "reps"+r;

    var y1 = "repsId"+r;

    window.opener.document.getElementById(y).value+=document.frm.favourites.value+',';
    window.opener.document.getElementById(y1).value+=document.frm.recp_listId.value+',';
    window.close();
}

編集:私はこれらが私が変更する必要がある行であると信じています:

window.opener.document.getElementById(y).value+=document.frm.recipes.value+',';             

window.opener.document.getElementById(y1).value+=document.frm.recp_listId.value+',';

問題は、これらの行が現在の値に値を追加していることだと思います<textarea>。textareasをdivに変更すると、値がdivに適用されません。したがって、値ではなくdivにテキストとして結果を入力するようにコードを変更する必要があります。

4

1 に答える 1

1

を使用する場合は、やなどのフォームコントロールに使用するのとは異なり、divそのtextContentプロパティを使用します。にプロパティを作成することになったため、エラーは発生しません。valuetextareainputvaluediv


コードスニペット#1

var div = document.createElement('div');
div.textContent = document.frm.recipes.valu‌​e;
window.opener.document.getElementById(y).appendChild(div);
于 2012-04-13T06:45:03.893 に答える