[RESOLU] Récupérer valeur d'un formulaire

Eléphant du PHP | 109 Messages

07 août 2022, 21:07

Bonjour,

Je bloque sur un detail, dans un formulaire, lorsque qu'il y a une erreur je ne souhaite pas tout retaper.
Dans les attibuts de champs j'ai mis ceci :
value="<?= htmlentities($_POST['message'] ?? '', ENT_QUOTES, 'UTF-8')?>"
Mai cela ne fonctionne pas, je ne récupére pas ce qui à été envoyé en cas d'erreur.

pourriez-vous m'aider, m’orientè sur la problématique.

Merci par avance pour votre retour.
@+ Filou

Mammouth du PHP | 2261 Messages

07 août 2022, 22:41

il nous manque du code pour savoir si c'est bien $_POST['message'] qu'il faut utiliser.

Eléphant du PHP | 109 Messages

08 août 2022, 19:43

Bonjour,

Voici le cote HTML :
<div class="mt-3">
<label for="exampleFormControlTextarea1" class="form-label texte">Message (obligaoire) :</label>
<textarea class="form-control"
name="textareaA"
id="textareaA"
rows="8"
maxlength="900"
value="<?= htmlentities($_POST['textareaA'] ?? '', ENT_QUOTES, 'UTF-8')?>"
required
placeholder="Votre message ici"></textarea>
</div>
<div class="error mb-3"><?= htmlentities($error['textareaA'] ?? '', ENT_QUOTES, 'UTF-8')?></div>
<div id="textareaAError" class="counter text-end texte"><span>0</span> caractères (900 max)</div>
Merci pour votre aide.
@+ Filou

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9432 Messages

08 août 2022, 19:54

Le contenu d'un textarea ça ne se met pas dans un attribut value, mais directement entre la balise ouvrante et fermante

Code : Tout sélectionner

<textarea>CONTENU ICI</textarea>
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 109 Messages

08 août 2022, 21:32

C'est du boostrap.

@+ Filou

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9432 Messages

09 août 2022, 08:30

Et ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 109 Messages

09 août 2022, 14:46

C'est bien dans du textaera.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9432 Messages

09 août 2022, 15:46

Ok, tu mets en résolu ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 109 Messages

09 août 2022, 18:45

Non , je n'ai pas eu la solution.
Si quelqu'un peut m'aider.

Merci par avance.
@+ Filou

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9432 Messages

09 août 2022, 19:11

Le contenu d'un textarea ça ne se met pas dans un attribut value, mais directement entre la balise ouvrante et fermante

Code : Tout sélectionner

<textarea>CONTENU ICI</textarea>
Tu as fait ça ?
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 109 Messages

09 août 2022, 21:01

Oui, ma demande initiale est comment ré afficher ce qui est envoyer en poste en cas d'erreur afin de ne pas tout réecrire dans le formulaire.

@+ Filou

Mammouth du PHP | 2261 Messages

09 août 2022, 21:44

il nous manque du code pour savoir si c'est bien $_POST['message'] qu'il faut utiliser.

Eléphant du PHP | 109 Messages

09 août 2022, 21:48

Voici le code :
div class="mt-3">
<label for="exampleFormControlTextarea1" class="form-label texte">Message (obligaoire) :</label>
<textarea class="form-control"
name="textareaA"
id="textareaA"
rows="8"
maxlength="900"
value="<?= htmlentities($_POST['textareaA'] ?? '', ENT_QUOTES, 'UTF-8')?>"
required
placeholder="Votre message ici"></textarea>
</div>
<div class="error mb-3"><?= htmlentities($error['textareaA'] ?? '', ENT_QUOTES, 'UTF-8')?></div>
<div id="textareaAError" class="counter text-end texte"><span>0</span> caractères (900 max)</div
Je voulais savoir si niveau de la value, le formulaire et que je génère une erreur le texte ne se réaffiche pas

Mammouth du PHP | 2261 Messages

09 août 2022, 22:08

il manque le <form ...> pour savoir vers quelle url c'est renvoyé, et l'éventuel traitement fait sur cette url.

ensuite, quel est le code html généré par ce php ? car un textarea n'ayant pas de champ value, il est possible qu'il y ai la valeur remplie avant mais que rien ne s'affiche, ce qui est normal.

Eléphant du PHP | 109 Messages

10 août 2022, 21:38

Bonsoir,

Voici mon code :
<?php
ob_start();

$_SESSION["nbr1"] = rand(0, 50);
$_SESSION["nbr2"] = rand(1, 10);
?>

<!-- Debut code message erreur -->
<div class="container">
<div class="row justify-content-center my-5">
<?php if($code) :?>
<div class="col-10 text-center h5 alert mt-3 <?= $messageCode[$code]['type'] ?>">
<?= $messageCode[$code]['msg'] ?>
</div>
<?php endif ?>
</div>
</div>
<!-- Fin code message erreur -->

<!-- Formulaire de contact -->
<form action="<?=htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post" enctype="multipart/form-data">

<div class="container">

<div class="row justify-content-center">

<div class="col-10">

<div class="mt-3">
<h1>Formulaire de contact</h1>
</div>

<div class="mt-3">
<label for="exampleFormControlInput1" class="form-label texte"> Mail de contact :</label>
<input type="email" class="form-control" id="mail" name="mail" required value=<?=$_SESSION['auth']->mail?> READONLY>
</div>
<div class="error mb-3"><?= htmlentities($error['mail'] ?? '', ENT_QUOTES, 'UTF-8')?></div>

<!-- A ajouter au controller contact -->
<div class="mt-3">
<label for="exampleDataList" class="form-label texte">Sujet (obligaoire) :</label>
<input class="form-control"
list="datalistOptions"
name="sujet"
id="sujet"
placeholder="Sujet message">
<datalist name="datalistOptions" id="datalistOptions">
<option value="Lien cassé">
<option value="Article">
<option value="Autre">
<option value="Se désabonner">
</datalist>
</div>
<div class="error mb-3"><?= htmlentities($error['sujet'] ?? '', ENT_QUOTES, 'UTF-8')?></div>

<div class="mt-3">
<label for="exampleFormControlTextarea1" class="form-label texte">Message (obligaoire) :</label>
<textarea class="form-control"
name="textareaA"
id="textareaA"
rows="8"
maxlength="900"
value="<?= htmlentities($_POST['textareaA'] ?? '', ENT_QUOTES, 'UTF-8')?>"
required
placeholder="Votre message ici"></textarea>
</div>
<div class="error mb-3"><?= htmlentities($error['textareaA'] ?? '', ENT_QUOTES, 'UTF-8')?></div>
<div id="textareaAError" class="counter text-end texte"><span>0</span> caractères (900 max)</div>

<div class="mt-3">
<label for="formFile" class="form-label texte">Fichier (option) :</label>
<input class="form-control" type="file" name="fichier" id="fichier">
</div>
<div class="error mb-3"><?= htmlentities($error['fichier'] ?? '', ENT_QUOTES, 'UTF-8')?></div>

<div class="mt-3 texte">
<label for="exampleFormControlInput1"class="form-label texte"> Contrôle validation (obligaoire) :</label>
<P>Combien font : <?php echo $_SESSION["nbr1"]; ?> + <?php echo $_SESSION["nbr2"]; ?> <input class="input" type="text" size="2" required name="sommeReponse" id="sommeReponse"></P>
</div>
<div class="error mb-3"><?= htmlentities($error['sommeReponse'] ?? '', ENT_QUOTES, 'UTF-8')?></div>

<div class="text-end">
<button class="btn btn-outline-success my-3" type="submit">Envoyer</button>
</div>

</div>

</div>

</div>

</form>

<!-- Fin formulaire de contact -->

<?php
$content = ob_get_clean();

$titlePage = 'Contact';
$metaDescription ="";
$metaKeywords ="";

$title = 'Contact';

include(dirname(__FILE__).'/templates/connecter.php');
?>
Je suis en structure mvc.

Merci par avance pour votre retour.
@+ Filou