Bonjour,
J'ai généré en php des formulaires et j'aimerais pouvoir écouter les submit en php, je n'y parviens pas, est-ce que quelqu'un aurait une idée du chemin à suivre?


    <?php if (count($no_address) > 0) : ?>
        <center>
            <h1>Addresses not recognized</h1>
        </center>
    <?php endif; ?>
    <?php foreach ($no_address as $k => $user) : ?>
        <div class='errors'>
            <span class='infos-container'>
                <p><?= $user['last-name'] . ' ' . $user['first-name'] ?></p>
                <?php if (isset($user['email'])) : ?>
                    <p><?= $user['email'] ?></p>
                <?php else : ?>
                    <p>No email found</p>
                <?php endif; ?>
            </span>
            <form class='no-address-form' name="<?= 'no-address-' . $k ?>" method="POST">
                <textarea><?= $user['address'] ?></textarea>
                <input type='submit' value='Try'>
            </form>
        </div>
    <?php endforeach; ?>
>


// Ceci ne fonctionne pas.
for ($i = 0; $i < count($no_address); $i++) {
    if (isset($_POST['no-address-' . $i])) {
        echo "ok";
    }
}

Je ne sais pas si je me suis correctement exprimé, je peux réexpliquer si besois.
Merci beaucoup de votre aide et bonne soirée (:
Modérateur
Bonjour,

Hum ! Quand tu "soumets" une "form", il n'y a que les valeurs des champs de cette "form" qui sont envoyées au serveur (mais pas la "value" éventuelle qui serait un attribut de la balise "form"). Donc ton code qui ne fonctionne pas ne risque pas de fonctionner rien que pour cette raison.

Ci-dessous un petit code qui illustre ça. Quand on valide la 1re "form", on peut récupérer la valeur de son input ayant name="portnawak". Et quand on valide la 2e "form", on peut récupérer la valeur de son input ayant name="portnawak". Et puis c'est tout. La "value" qui se trouve dans la balise "form" elle-même est inconnue dans php.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
</style>
</head>
<body>
<?php
for ($i = 1; $i < 3; $i++)
{
	if (isset($_POST['no-address-'.$i])) echo 'no-address-'.$i.' est ok et vaut '.$_POST['no-address-'.$i];
}
if (isset($_POST['portnawak'])) echo 'portnawak'.' est ok et vaut '.$_POST['portnawak'];
?>
<form name="no-address-1" value="f1" method="post">
<input name="portnawak" value="A">
<input type='submit' value='On y va'>
</form>
<form name="no-address-2" value="f2" method="post">
<input name="portnawak" value="B">
<input type='submit' value='On y va'>
</form>

</body></html>


Amicalement,
Ok, donc si j'ai bien comprit il faut que j'écoute les valeurs qui sont envoyées au serveur plutôt que la validation du formulaire? En tout cas j'ai réussi à faire fonctionner mon code en effectuant ces changements là :


// j'ai juste rajouté l'attribut name au textarea
<form class='no-address-form' name='form-<?= $k ?>' method="POST">
     <textarea name='textarea-<?= $k ?>'><?= $user['address'] ?></textarea>
     <input name='submit-<?= $k ?>' type='submit' value='Try'>
</form>     


if (isset($no_address)) {
    for ($i = 0; $i < count($no_address); $i++) {
        if (isset($_POST['textarea-' . $i])) {
            echo "Sans toi parsimonhi, je ne me serais jamais exécuté...";
        }
    }
}


En tout cas merci beaucoup pour ton explication et ton petit exemple, je te souhaite une excellente soirée! (:
Modérateur
Bonjour,

vzytoi a écrit :
Ok, donc si j'ai bien comprit il faut que j'écoute les valeurs qui sont envoyées au serveur plutôt que la validation du formulaire?

Je n'ai pas trop compris ta phrase, mais l'essentiel est que tu arrives à faire ce que tu souhaitais. Smiley cligne

Amicalement,