|
|
|
| Задача.
из БД считывается таблица, значения ячеек которой выводятся в поля формы TEXTAREA
Примерно так:
$query = "SELECT id, text FROM task WHERE id>0";
$result = mysql_query($result);
$result = mysql_fetch_assoc($result );
while (list ($name, $content) = each ($result ) {
echo "
<form method='POST' action='script.php'>
<table>
<tr>
<td><TEXTAREA name=$name>$content</TEXTAREA>
</td>
</tr>
</table>
<input type='submit' name='save'>
</form>
";
}
|
Данные формы передаются в скрипт.
В скрипте необходимо проверить, если в форме были сделаны изменения, то данные из поля TEXTAREA перезаписывались в БД, если изменений не было, то к базе данных не обращаемся.
Как осуществитьпроверку: были ли изменения в поле TEXTAREA не обращаясь к БД? | |
|
|
|
|
|
|
|
для: dove
(30.03.2008 в 22:43)
| | Можно вот так попробовать:
<form method='POST' action='script.php'>
<input type="hidden" name="change" value="0"/><!--Вводим дополнительное поле формы оно будет передавать значение если в поле 0 - то изменения не вносились, если 1- то были внесены изменения-->
<table>
<tr>
<td><TEXTAREA id="text" name=$name>Здесь находится некоторый текст. Если внести сюда какие либо изменения </TEXTAREA>
</td>
</tr>
</table>
<input type='submit' name='save'>
</form>
</body>
<script>
var text = document.getElementById('text');//ссыла на textarea
text.onkeypress=function(){document.getElementById('change').value='1'} //событие при натии на клавишу
</script>
|
| |
|
|
|
|
|
|
|
для: ONYX
(31.03.2008 в 04:59)
| | Это как раз то что надо, только вот еще вопрос (я в яве не силен),
на странице будет таблица и в ячейках таблицы будут поля TEXTAREA и рядом input type=hidden
<td><TEXTAREA name="1"></TEXTAREA><input type="hidden" name="change[1]" value='0'></td>
<td><TEXTAREA name="2"></TEXTAREA><input type="hidden" name="change[2]" value='0'></td>
<td><TEXTAREA name="3"></TEXTAREA><input type="hidden" name="change[3]" value='0'></td>
<td><TEXTAREA name="5"></TEXTAREA><input type="hidden" name="change[4]" value='0'></td>
<td><TEXTAREA name="8"></TEXTAREA><input type="hidden" name="change[8]" value='1'></td>
<!-- Нумерация может идти не по порядку -->
....
|
те при передаче данных методом POST у нас будет передаваться массив change[]
те эти данные будут обрабатываться так:
<?php
$change = $_POST['change'];
echo $change[1]; //выводит 0
...
echo $change[8]; //выводит 1
?>
|
как модифицировать скрип так, чтобы он узнавал значение name тега TEXTAREA, который изменяется пользователем, и менял value у скрытого поля формы с соответствующим значением name.
что-то вроде (getIdFromElement - сам придумал)
numb = getIdFromElement('TEXTAREA');
document.getElementById('change[numb]').value='1'
|
| |
|
|
|
|
|
|
|
для: dove
(01.04.2008 в 00:07)
| | можно так - общий смысл в том что при изменении textarea значение из него
копируется вследующий дочерний узел - то есть будет работать если сразу
за textarea идет хиден в который копировать значение - даже пробела нельзя ставить
батон убрать - это что бы показать как изменилось значение хидена
<td><TEXTAREA name="1" onchange="nextSibling.value = this.value"></TEXTAREA><input type="hidden" name="change[1]" value='0'><input type="button" onclick="alert( previousSibling.value )" value="test"></td>
<td><TEXTAREA name="2" onchange="nextSibling.value = this.value"></TEXTAREA><input type="hidden" name="change[2]" value='0'></td>
<td><TEXTAREA name="3" onchange="nextSibling.value = this.value"></TEXTAREA><input type="hidden" name="change[3]" value='0'></td>
<td><TEXTAREA name="5" onchange="nextSibling.value = this.value"></TEXTAREA><input type="hidden" name="change[4]" value='0'></td>
<td><TEXTAREA name="8" onchange="nextSibling.value = this.value"></TEXTAREA><input type="hidden" name="change[8]" value='1'></td>
|
в чем прелесть, что можно начхать на все иды и name важно только расположение относительно друг друга | |
|
|
|