[RESOLU] Formulaire, la variable Textarea ne passe pas ?

Eléphanteau du PHP | 36 Messages

11 avr. 2025, 16:05

Bonjour à tou(te)s

alors c'est vraiment un problème de base, mais je n'ai plus d'idée...

J'ai un formulaire, avec un sujet, et un texte.

voici mes deux champs, dont le premier contenu est suggéré.

Code : Tout sélectionner

<input name="sujet_mail" type="text" id="sujet_mail" size="100" value="<?php echo $sujet; ?>"> <TEXTAREA name="texte mail" style="width:80%" rows="6"><?php echo $contenu; ?></TEXTAREA>
(je vous passe le code autour). Sur ma page 2, après validation, j'affiche le contenu des variables récupérées, potentiellement modifié.
Et c'est là que ça ne va pas :
je récupère bien le sujet du mail modifié, mais le contenu du Textarea reste celui d'origine, sans tenir compte de mon nouveau texte.

Le formulaire fonctionne bien, puisque le champ "sujet" fonctionne. J'ai essayé de créer d'autres textarea, et pour tous j'ai le même problème.

il y a d'autres pages de mon application qui utilisent des formulaires et des textarea, et qui fonctionnent. alors là je ne sais plus quoi tester... :roll:

Mammouth du PHP | 2703 Messages

11 avr. 2025, 19:20

que contiennent les variables $_GET et $_POST une fois le formulaire soumis ?
quel est le code pour afficher le contenu du textarea ?

Eléphanteau du PHP | 36 Messages

11 avr. 2025, 20:48

Bonjour Or 1,

et merci de ton aide.
La variable POST contient ce que j'ai affiché dans la zone texte, AVANT de le modifier et de cliquer sur "envoyer".

Eléphanteau du PHP | 36 Messages

13 avr. 2025, 09:44

En plus clair, sur ma page 2 j'ai :

Code : Tout sélectionner

echo $_POST['texte_mail'];

Mammouth du PHP | 2703 Messages

13 avr. 2025, 10:06

que contiennent les variables $_GET et $_POST une fois le formulaire soumis ?

Eléphanteau du PHP | 36 Messages

13 avr. 2025, 10:27

Alooors, ça peut en intéresser certain(e)s... ?
en enlevant petit à petit des choses j'ai trouvé ce qui gène, sans comprendre pourquoi pour l'instant :

j'avais mis un script de chargement (ma page peut être lourde).
<script>
function disableButtonAndSubmit(event) {
event.preventDefault(); // Empêche le comportement par défaut du formulaire
const button = event.target; // Récupère le bouton cliqué
button.disabled = true; // Désactive le bouton
button.value = "Traitement en cours... Merci de patienter."; // Change le texte du bouton

// Affiche l'animation de chargement
const loading = document.getElementById('loading');
loading.style.display = 'block';

// Soumet le formulaire après un court délai
setTimeout(() => {
button.form.submit(); // Soumet le formulaire
}, 1000); // Délai de 1 seconde
}
</script>
et le bouton :
 <input type="submit" name="Envoyer" id="Envoyer" class="btn btn-sm btn-danger" title="Envoyer" data-placement="bottom" data-toggle="tooltip" value="Envoyer" onclick="disableButtonAndSubmit(event)">
et si j'enlève mon script ça fonctionne, je récupère bien ma variable post du texte area.
sur mon Textarea j'ai un éditeur de texte : Nice éditor :

Code : Tout sélectionner

<script type="text/javascript"> bkLib.onDomLoaded(function() { bkLib.onDomLoaded(function() { nicEditors.allTextAreas() }); }); </script>
et apparemment c'est ça qui bloque, les deux ne vont pas ensemble.
Si vous savez pourquoi, ou comment faire en sorte que je garde mon préload et mon éditeur, je suis preneuse !

Eléphanteau du PHP | 36 Messages

13 avr. 2025, 11:36

... Et donc j'ai modifié mon chargement, en passant par JQuery qui est maintenant :

Code : Tout sélectionner

<SCRIPT LANGUAGE="JavaScript"> jQuery(function($){ $('#loading').hide(); // On masque le gif au chargement de la page $('#Envoyer').click(function(e){ // Affichage du gif de chargement $('#loading').show(); }); }); </SCRIPT> <div id="loading"><img src="img/loading.gif" alt="Chargement...">Chargement...</div> <!-- Élément d'animation de chargement -->
et plus de conflits javascript.

Voilà si ça peut vous servir !

Avatar du membre
Mammouth du PHP | 1564 Messages

16 avr. 2025, 17:11

Salut, tu as oublié un underscore à ton name : <TEXTAREA name="texte mail"...