2010-10-29 2 views
0

У меня есть текстовое поле для документации, которое работает хорошо. Теперь проблема заключается в том, когда пользователь вводит в нее какой-то новый текст. Мне нужна дата в формате (dd.mm.yy), которая должна быть прикреплена к ней автоматически, с отметкой времени.текст с прикрепленной датой

Например, когда пользователь впервые вводит «Проблема с производством». затем щелкает, затем он должен отображаться как 19.10.10 16:39 «Проблема с производством».

После этого, если кто-то изменит поле и добавит: «В стадии разработки».

должно быть 19.10.10 18:39 «Проблема с производством», 29.10.10 16:59 «В стадии разработки».

При отключении формы я не могу отслеживать недавно добавленный текст. Поскольку я получу полный текст в пост-переменных.

Я нашел грязный трюк, поместив немного странного персонажа после сохранения текста. Теперь в моих постпеременных переменных я смогу различать, что такое старый текст и что недавно добавлено. Добавьте текущую отметку времени к недавно добавленной.

Я был бы рад, если кто-то может предложить мне лучшую процедуру.

Заранее благодарен!

+1

Поделитесь своим кодом, пожалуйста. – kovshenin

+0

Вы сохраняете это в mysql db? – Gordon

+0

Извините за поздний комментарий. Я сохраняю сервер sql. – satya

ответ

1

Off верхней части моей голова несколько вариантов:

(а) с помощью JS - триггер изменения

некоторых Javascript на текстовом поле, которое вызывает задает значение в скрытом поле формы. Это поле отправлено обратно на PHP, чтобы он знал, что текстовое поле может быть изменено (до сих пор не удается определить, изменил ли пользователь его, а затем изменил его).

например. JS при изменении поля.

<input type="text" name="textfield" 
    onChange="this.form["textfieldchanged"].value=1;" /> 
<input type="hidden" name="textfieldchanged" value="" /> 

(б) С помощью PHP - изменение обнаружения

После отправки формы проверить текущую версию поля с представленной версией, если она изменилась затем сохранить новую версию.

например. PHP compare

if ($_REQUEST["textfield"]!=$current_textfield) { 
    //... 
} 

В обоих случаях при фактическом хранении значения теперь просто добавьте дату из PHP.

код: Окончательный PHP часть

function storeText($text) { 
    $date=Date(); 
    //Store $text+$date .. file, SQL, not sure what you're doing here. 
} 

Вы можете также использовать JS, чтобы установить дату на скрытом поле, когда текст обновляется (вместо флага). Это имеет то преимущество, что дата локальной системы включается в форму-submit (особенно полезно, если пользователи находятся в разных часовых поясах), но имеет недостаток, который может сделать . ваше программное обеспечение, изменив их местные часы, когда они отправляют записи. ..представьте себе, что кто-то захотел добавить текст перед кем-то другим, они могли просто установить свои часы назад - сделать submit - установить часы на правильное время и продолжить.

0

Не уверен, что я совсем понимаю - Вы могли бы иметь скрытое поле в форме, которая по умолчанию дате - она ​​затем будет представлен в качестве отдельной переменной пост ...

<form> 
<input type='text' name='textfieldforcomments' /> 
<input type='hidden' name='datetracker' value='".date("d.m.y h.i")."'/> 
</form> 
+0

Спасибо за ответ. Для этого мне даже не нужно скрытое поле. Я могу просто добавить дату в текстовый столбец. Но мне нужна дата, когда текст был сначала добавлен + текст + следующий обновленный + новый текст + следующий обновленный + текст. посмотрите пожалуйста один раз. – satya

Смежные вопросы