Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка изменения TEXTAREA
 
 автор: dove   (30.03.2008 в 22:43)   письмо автору
 
 

Задача.
из БД считывается таблица, значения ячеек которой выводятся в поля формы 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 не обращаясь к БД?

   
 
 автор: ONYX   (31.03.2008 в 04:59)   письмо автору
 
   для: 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>

   
 
 автор: dove   (01.04.2008 в 00:07)   письмо автору
 
   для: 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'

   
 
 автор: KirillKiev   (02.04.2008 в 19:39)   письмо автору
 
   для: 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 важно только расположение относительно друг друга

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования