Vider un champ text
Résolu
rolly41
Messages postés
244
Date d'inscription
Statut
Membre
Dernière intervention
-
rolly41 Messages postés 244 Date d'inscription Statut Membre Dernière intervention -
rolly41 Messages postés 244 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Sur le tchat de mon site, quand nous validons un message pour parler, le message s’envoie bien mais reste aussi dans l'input text. Je souhaite donc vider le champ text nommé "message" quand le message a bien été envoyé à la base de données.
J'ai testé ceci dans mon code javascript:
et j'ai mis ceci au bouton submit:
Le problème, c'est que le champ message est vidé avant d'être envoyé à la base de données, ce qui fait donc un message vide.
Pourriez-vous m'orienter vers une solution stable pour que je puisse corriger cela?
Merci beaucoup à vous tous, grâce à ce forum j'ai appris beaucoup de chose et de plus, cela me permet de partager mes erreurs pour éviter que d'autre personne ne fassent les même erreurs :)
Sur le tchat de mon site, quand nous validons un message pour parler, le message s’envoie bien mais reste aussi dans l'input text. Je souhaite donc vider le champ text nommé "message" quand le message a bien été envoyé à la base de données.
J'ai testé ceci dans mon code javascript:
function reinit()
{
document.getElementsByName("message")[0].value = "";
}
et j'ai mis ceci au bouton submit:
onclick="reinit()"
Le problème, c'est que le champ message est vidé avant d'être envoyé à la base de données, ce qui fait donc un message vide.
Pourriez-vous m'orienter vers une solution stable pour que je puisse corriger cela?
Merci beaucoup à vous tous, grâce à ce forum j'ai appris beaucoup de chose et de plus, cela me permet de partager mes erreurs pour éviter que d'autre personne ne fassent les même erreurs :)
A voir également:
- Vider input javascript
- Vider corbeille whatsapp ✓ - Forum WhatsApp
- Vider le cache d'une application - Guide
- Telecharger javascript - Télécharger - Langages
- Input signal not found ✓ - Forum Matériel & Système
- Input not supported - Forum Ecran
2 réponses
Il suffit d'appeller ta fonction à la fin du script d'envoie
Donc retire le onclick que tu as mis ....
et remplaces ton code js par :
Donc retire le onclick que tu as mis ....
et remplaces ton code js par :
$('#envoyer').click(function(e) { e.preventDefault(); var url="./include/ajax-shoutbox.php"; var pseudo = $('#pseudo_expediteur').val();//pseudo de l'expediteur var message = $('#message_expediteur').val();//message envoyé var idsalon = $('#idsalon').val();//id du salon var id_expediteur = $('#id_expediteur').val();//id de l'expediteur var timer = new Date(); //création variable timer var annee = timer.getFullYear(); var mois = timer.getMonth()+1; var jour = timer.getDate(); var hrs = timer.getHours(); var mins = timer.getMinutes(); var secs = timer.getSeconds(); var heure = ((hrs<10)?"0":"")+hrs; var minute = ((mins<10)?"0":"")+mins; var seconde = ((secs<10)?"0":"")+secs; var date = jour+"/"+mois+"/"+annee; var time = heure+":"+minute+":"+seconde; if(message != "") // on vérifie que la variable n'est pas vides { $.post(url,{action:"addMessage",message:message},function(data){ },"json"); $('#messages').append("[" + time + "] " + pseudo + " : " + message + "<hr />"); element = document.getElementById('defillement'); element.scrollTop = element.scrollHeight; reinit(); return false; } else { alert('Votre message est vide'); } }); function reinit() { document.getElementsByName("message")[0].value = ""; }
Bonjour
Comment envoies tu les données dans la bdd ?
Comment envoies tu les données dans la bdd ?
La page shoutbox.php appel ce script (shoutbox.js) :
Quand je clique sur "Envoyer", le scrip me dit : "Votre message est vide". Chose qu'il ne me disait pas avant la fonction reinit. Du coup, il n’envoie pas le formulaire à la page de traitement php qui elle doit enregistrer les informations dans la base de données.
Page de traitement pour enregistrer les informations dans la base de données (ajax-shoutbox.php):
$('#envoyer').click(function(e)
{
e.preventDefault();
var url="./include/ajax-shoutbox.php";
var pseudo = $('#pseudo_expediteur').val();//pseudo de l'expediteur
var message = $('#message_expediteur').val();//message envoyé
var idsalon = $('#idsalon').val();//id du salon
var id_expediteur = $('#id_expediteur').val();//id de l'expediteur
var timer = new Date(); //création variable timer
var annee = timer.getFullYear();
var mois = timer.getMonth()+1;
var jour = timer.getDate();
var hrs = timer.getHours();
var mins = timer.getMinutes();
var secs = timer.getSeconds();
var heure = ((hrs<10)?"0":"")+hrs;
var minute = ((mins<10)?"0":"")+mins;
var seconde = ((secs<10)?"0":"")+secs;
var date = jour+"/"+mois+"/"+annee;
var time = heure+":"+minute+":"+seconde;
if(message != "") // on vérifie que la variable n'est pas vides
{
$.post(url,{action:"addMessage",message:message},function(data){
},"json");
$('#messages').append("[" + time + "] " + pseudo + " : " + message + "<hr />");
element = document.getElementById('defillement');
element.scrollTop = element.scrollHeight;
return false;
}
else
{
alert('Votre message est vide');
}
});
function reinit()
{
document.getElementsByName("message")[0].value = "";
}
Quand je clique sur "Envoyer", le scrip me dit : "Votre message est vide". Chose qu'il ne me disait pas avant la fonction reinit. Du coup, il n’envoie pas le formulaire à la page de traitement php qui elle doit enregistrer les informations dans la base de données.
Page de traitement pour enregistrer les informations dans la base de données (ajax-shoutbox.php):
<?php
session_start();
require ("connect-bdd.php");
$d=array();
if($_POST['action']=="addMessage")
{
$d["erreur"]='connecté';
extract($_POST);
$message=mysql_escape_string($message);
//Permet l'ajout d'un message
if($_POST['action']=="addMessage")
{
$d["erreur"]='formulaire trouvé';
$pseudo_expediteur=$_SESSION['pseudo_expediteur'];
$date= date("j/n/Y");
$time= date("H:i:s");
$id_expediteur=$_SESSION['id'];
$id_salon=$_SESSION['salon'];
$requete = $bdd->prepare("INSERT INTO shoutbox_msg (id_expediteur, time_msg, date_msg, msg, id_salon) VALUES (?,?,?,?,?)");
$requete->bindParam(1, $id_expediteur);
$requete->bindParam(2, $time);
$requete->bindParam(3, $date);
$requete->bindParam(4, $message);
$requete->bindParam(5, $id_salon);
$requete->execute();
if($requete)
{
$d=["erreur"]='Votre message a bien été enregistré';
}
else
{
$d["erreur"]='Impossible d\'enregistrer votre message';
}
}
else
{
$d["erreur"]='Aucun formulaire reçu';
}
}
else
{
$d["erreur"]='Merci de vous connecter avant de discuter';
}
echo json_encode($d);
?>
Effectivement, ta fonction reinit est beaucoup plus propre que la mienne pour mon code et plus facile :) il serait temps pour moi de faire une pause je crois xD
Merci beaucoup pour ton aide, une aide vraiment au top :)