Ca bosse un peu en été chez le canard, mais là il cale (encore) sur un point
Désolé pour la longueur, j'essaye de détailler au mieux le fonctionnement afin d'apporter le max de précisions
Voilà, en gros, j'ai fias une page pour mémoriser des commentaires sur des musiques ayant un problème audio, dans la partie admin du site de la radio, et ce , afin que les musiques puissent être plus tard , supprimées du logiciel de programmation musicale.
Lorsque je clique sur une musique, un popup (affichage d'une div) affiche un mini formulaire avec l'artiste et le titre (ca c'est juste textuel), un champ Textarea pour mettre son commentaire, et un bouton pour valider.
J’ai choisi un textarea car je veux pouvoir mettre des sauts de lignes dans le message.
Le bouton de validation n’est pas un submit d'un forum mais ca lance une fonction qui va récupérer la valeur du textarea et via ajax, l'envoyer en POST vers un fichier php qui va exécuter la requête de manière transparente.
Le commentaire est enregistré dans la colonne "comment" de la table dédiée à cette fonction, puis le popup disparaît.
Si on clique à nouveau sur la musique défectueuse, le pop réapparaît, en affichant toujours l'artiste et le titre, mais le(s) commentaire(s) déjà enregistré(s), là aussi de manière textuelle, puis le textarea pour saisir le nouveau commentaire.
A la validation, la page php récupère le contenu de la colonne "comment" (ci-dessous $prevcomment) de la table, puis ajoute celui du textarea ($message).
Code : Tout sélectionner
if ( $prevcomment != '' ) {
$message = $prevcomment . "<br>" . $login2 . " : " . $message;
} else {
$message = $login2 . " : " . $message;
}
$message = mysqli_escape_string($dbwrite, $message);La suite, le script fait un UPDATE du champs "comment" de la bdd en mettant ce nouveau message.
Tout marche bien, mais je cale sur un point esthétique :
Si on met un saut de ligne à la fin du commentaire (par mauvaise habitude de valider quelque chose par la touche Entrée), le commentaire qui sera posté à la suite, sera espacé d'une ligne vide, par exemple, Couin a fait Entrée avant de valider :
Couin : Voici le premier commentaire
Toto : Et moi je réponds
Alors que je voudrais qu'il n'y ait pas la ligne vide entre le message de Couin et celui de Toto :
Couin : Voici le premier commentaire
Toto : Et moi je réponds
Je souhaiterais faire un truc du genre :
Code : Tout sélectionner
if ( $prevcomment != '' ) {
$message = $prevcomment . "<br>" . $login2 . " : " . $message;
} else {
$message = $login2 . " : " . $message;
}
if ( substr($message, -2) == '\n' ) { $message = substr($message, 0, -2); } //Supprimer dernier saut de ligne si il y en a un
$message = mysqli_escape_string($dbwrite, $message);Je ne sais donc pas sous quel formes ils sont représentés. J'ai tenté de faire un alert(message.value) pour voir si ça afficherait le code du retour à la ligne, mais non plus, ça fait un retour à la ligne dans la fenêtre d'alerte du navigateur.
Je ne sais pas où chercher du coup
Si quelqu'un à une idée, je suis preneur
Merci de m'avoir lu
Couin