2010-10-29 3 views
0

J'ai un champ de texte pour la documentation, qui fonctionne bien. Maintenant, le problème est lorsque l'utilisateur entre un nouveau texte. J'ai besoin d'une date au format (jj.mm.aa), qui devrait être attachée automatiquement, avec l'horodatage.texte auquel est attachée la date

Par exemple, lorsque l'utilisateur entre d'abord, "Problème de production". puis clique sur enregistrer, il devrait afficher 19.10.10 16:39 "Problème de production". Après cela, si quelqu'un d'autre change le champ et ajoute, "En phase de développement".

il devrait être 19.10.10 18:39 "Problème avec la production", 29.10.10 16:59 "En phase de développement". Pendant la gravure du formulaire, je ne suis pas en mesure de suivre le texte nouvellement ajouté. Comme je vais obtenir le texte complet dans les variables post.

J'ai trouvé une astuce, en plaçant un caractère wierd après avoir enregistré le texte. Maintenant, dans mes variables post, je serai capable de différencier quel est le vieux texte et ce qui est nouvellement ajouté. Ajoutez l'horodatage actuel au nouveau ajouté.

Je serais heureux si quelqu'un peut me suggérer une meilleure procédure.

Merci d'avance!

+1

Partagez votre code s'il vous plaît. – kovshenin

+0

enregistrez-vous cela dans un db mysql? – Gordon

+0

Désolé pour commentaire tardif. J'économise dans le serveur sql. – satya

Répondre

1

Du haut de mon tête deux options:

(a) Avec JS - changement déclencheur

Certains javascript sur le champ de texte qui déclenche définit une valeur dans un champ de formulaire caché. Ce champ est retourné à PHP afin qu'il sache que le champ de texte a changé (il ne peut toujours pas dire si l'utilisateur l'a modifié puis modifié).

par ex. Déclenchement JS lors du changement de champ.

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

(b) Avec PHP - changement détecter

À Envoi de formulaire vérifier la version actuelle du champ avec la version soumise, si elle a changé ensuite stocker la nouvelle version.

par ex. PHP compare

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

Dans les deux cas, lorsque vous stockez la valeur, ajoutez simplement une date à PHP.

code: pièce PHP finale

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

Vous pouvez également utiliser JS pour définir une date sur un champ masqué lorsque le texte est mis à jour (au lieu d'un drapeau). Ceci a l'avantage que la date du système local est incluse avec le formulaire-submit (particulièrement utile si les utilisateurs sont dans des fuseaux horaires différents) mais a le désavantage que les utilisateurs peuvent changer votre logiciel en changeant leur horloge locale quand ils soumettent des entrées. ..Imaginez que quelqu'un voulait ajouter du texte à quelqu'un d'autre, il pourrait simplement revenir en arrière, faire la soumission, régler l'heure au bon moment et continuer.

0

Je ne sais pas je suivre tout à fait - Vous pourriez avoir un champ caché sous la forme qui est par défaut à la date - il serait alors soumis comme une variable post séparée ...

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

Merci pour votre réponse. Pour cela, je n'ai même pas besoin de champ caché. Je peux juste ajouter la date à la colonne de texte. Mais j'ai besoin de la date à laquelle le texte a été ajouté pour la première fois + texte + mise à jour suivante + nouveau texte + mise à jour suivante + texte. S'il vous plaît voir l'exemple une fois. – satya

Questions connexes