私は自分の能力を超えたコーディングを担当している開発者と一緒に仕事をしています。主に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にテキストとして結果を入力するようにコードを変更する必要があります。