J'ai repris un le tuto sur le site qui était le chat en ajax qui fonctionne bien, et j'ai donc voulu un système de smileys, et par exemple dans la zone de texte si je clique sur le smileys et que j'envoi le formulaire cela me dit que le message est vide je ne comprend pas.
function urllink($content='') {
// Insérez vos smiley ici, dans le premier tableau smiliesName
// Et dans la colonne correpsondante du second tableau smiliesUrl
// Indiquez le nom de l'image
$smiliesName = array(':colere:');
$smiliesUrl = array('cole.gif');
$smiliesPath = "".ADRESSE_SITE."/templates/".TEMPLATE_SITE."/images/smileys/";
for ($i = 0, $c = count($smiliesName); $i < $c; $i++) {
$content = preg_replace('`' . $smiliesName[$i] . '`isU', '<img src="' . $smiliesPath . $smiliesUrl[$i] . '" alt="smiley" />', $content);
}
$content = stripslashes($content);
return $content;
}
Ma fonction ajax pour l'envoi du formulaire:
function postMessage() {
//-- On lance la requête ajax
//-- type: POST > nous envoyons le message
//-- On encode le message pour faire passer les caractères spéciaux comme +
var message = encodeURIComponent($("#message_shoutbox").val());
$.ajax({
type: "POST",
url: "/ajax-chat/post-message.php",
data: "message="+message,
success: function(msg)
{
//-- Si la réponse est true, tout s'est bien passé,
//-- Si non, on a une erreur et on l'affiche
if(msg == true)
{
//-- On vide la zone de texte
$("#message_shoutbox").val('');
$("#responsePost").slideUp("slow").html('');
} else
$("#responsePost").html(msg).slideDown("slow");
//-- On resélectionne la zone de texte, en cas d'utilisation du bouton "Envoyer"
$("#message_shoutbox").focus();
},
error: function(msg){
//-- On alerte d'une erreur
alert('Erreur');
}
});
}
Et voici mon code PHP pour l'envoi du formulaire:
if(isset($_POST['message_shoutbox']) AND !empty($_POST['message_shoutbox']))
{
//-- On teste si le message ne contient qu'un ou plusieurs points et qu'un ou plusieurs espaces, ou s'il est vide. ^ -> début de la chaine - $ -> fin de la chaine [-. ] -> espace, rien ou point + -> une ou plusieurs fois Si c'est le cas, alors on envoie pas le message
if(!preg_match("#^[-. ]+$#", $_POST['message_shoutbox']))
{
$query = $connexion->prepare("SELECT * FROM ChatMessages WHERE message_user = :user ORDER BY message_time DESC LIMIT 0,1");
$query->execute(array(
'user' => $_SESSION['id']
));
$count = $query->rowCount();
$data = $query->fetch();
$percent = "";
//-- Vérification de la similitude
if($count != 0)
similar_text($data['message_text'], $_POST['message_shoutbox'], $percent);
if($percent < 80)
{
//-- Vérification de la date du dernier message.
if(time()-5 >= $data['message_time'])
{
$insert = $connexion->prepare('INSERT INTO ChatMessages (message_id, message_user, message_time, message_text) VALUES(:id, :user, :time, :text)');
$insert->execute(array(
'id' => '',
'user' => $_SESSION['id'],
'time' => time(),
'text' => $_POST['message_shoutbox']
));
echo true;
}
else
{
alert_ariere_go('Votre dernier message est trop récent. Baissez le rythme :D');
}
}
else
{
alert_ariere_go('Votre dernier message est très similaire.');
}
}
else
{
alert_ariere_go('Votre message est vide.');
}
}
else
{
alert_ariere_go('Votre message est vide.');
}
Voila en espérant de m'avoir bien expliquer je vous remercie pour votre aide
Je n'ai pas analysé tout le code, il y en a beaucoup trop et des le matin, c'est dur !
Cependant la fonction javascript ma sauté au yeux :
Je suppose donc que c'est la fonction qui insert le smiley de ta "pop-up" a ton textarea,
textSelect etant ton textarea, qu'est-ce que c'est que textSelect.c ? Je ne le vois défini nul part.
De plus tu dis en javascript, la valeur de mon textarea, si elle est vide, on ajoute a la variable le smiley, sinon on reprend le texte + smiley, ca c'est ok, mais tu l'a affecté dans ton javascript, il va falloir le remettre a ton textarea via un innerHTML ou append. ( innerHTML je crois que c'est ce qu'il te faut, avant de le refocus.
Voir une araignée c'est rien ... Le pire c'est quand tu ne la vois plus !
Et cela fonctionne a présent merci beaucoup sujet résolu
Textarea qui est considérer vide !
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales