Это сложное название, я знаю.Я думаю, что пример лучше всего иллюстрирует то, что я имею в виду:
Допустим, я спрашиваю пользователя о его любимых рок-альбомах: albumName и albumArtist.У меня есть таблица с двумя столбцами, которая начинается только с одной строки.Когда пользователь нажимает кнопку, функция JavaScript добавляет другую строку с соответствующими полями ввода в соответствующих ячейках.Затем все эти данные хранятся в таблице MySQL.Все это прекрасно работает.
Когда пользователь вернется, я бы хотел перерисовать таблицу, вставив все предоставленные пользователем значения.Тем не менее, когда я вызываю ту же функцию JS с использованием PHP <echo>
, она отображается выше формы.Как я могу это исправить?
Пример кода ниже:
Javascript в голове:
function addInputCell(newRow, cellNum, size, maxLength, fieldID, inputID, value)
{
var newCell = newRow.insertCell(cellNum);
var elem = document.createElement('input');
elem.type = 'text';
elem.size = size;
elem.maxlength = maxLength;
elem.name = fieldID + inputID;
elem.value = value;
newCell.appendChild(elem);
alert(elem.value);
}
function add3CellRow(fieldID, size1, maxlength1, size2, maxlength2, value)
{
var table = document.getElementById(fieldID);
var lastRow = table.rows.length;
if(lastRow <22){
var newRow = table.insertRow(lastRow - 1);
var cellLeft = newRow.insertCell(0);
var textNode = document.createTextNode(lastRow - 1);
cellLeft.appendChild(textNode);
addInputCell(newRow, 1, size1, maxlength1, fieldID, 'Name[]', value);
addInputCell(newRow, 2, size2, maxlength2, fieldID, 'Artist[]', value);
}
else
{
alert('You can only enter 20 values in this field');
}
}
HTML в теле:
<table width="450" border="0" id='album' cellspacing="0" cellpadding="0">
<thead>
<tr>
<td width="3"></td>
<td width="90%" align="center"><b>Album Name</b></td>
<td width="10%" align="center"><b>Album Artist</b></td>
</tr>
</thead>
<tr>
<td align="right">1</td>
<td><input type="text" size="20" name="albumName[]" maxlength="20" value='<?php echo($onfile['albumName']);?>'/></td>
<td><input type="text" size="20" name="albumArtist[]" maxlength="20" value='<?php echo($onfile['albumArtist']);?>'/> </td>
</tr>
<tr>
<td></td><td></td><td align="right"><input type="button" value="Add Concern" onClick="add3CellRow('album',20,20,20,20 ,'');"/></td>
</tr>
</table>
PHP в теле:
<?php
echo ("<script type='text/javascript'>");
//Get the data in the rock table where userID matches
$result = mysql_query("SELECT * FROM rock WHERE userID = '$_SESSION[userID]'");
while($onfile = mysql_fetch_array($result)) //Set the data into an array
{
echo ("add3CellRow('rock',20,20,20,20, '$onfileConcern[albumName]');");
}
echo ("</script>");
?>