Page 1 sur 1

Garder la visibilité après un submit

Posté : 04 oct. 2014, 11:17
par bluephpblue
Bonjour, je débute et dans ce programme épuré je souhaite garder la visibilité de "hiddenform1" ou "hiddenform2" après avoir appuyé sur submit.
Je n'ai pas trouvé de solutions. Des idées pour éviter qu'ils redeviennent invisible après un submit? Merci pour votre aide.
Guy

debugform.php:
<html>
    <head>
        <title>Hide Form</title>
        <script type="text/javascript">
            function showForm(flag) {
		    document.getElementById('hiddenform1').style.visibility = flag >= 1 ? 'visible' : 'hidden';
			document.getElementById('hiddenform2').style.visibility = flag >= 2 ? 'visible' : 'hidden';
            }
        </script>
        <style type="text/css">
            #hiddenform1 {visibility: hidden}
    		#hiddenform2 {visibility: hidden}
        </style>
    </head>
    <body>
<?php
// define variables and set to empty values
$nb = "";


if ($_SERVER["REQUEST_METHOD"] == "POST") {
   if (empty($_POST["nb"])) {
    $nb ="";
   } else {
     $nb = test_input($_POST["nb"]);
   }
}

function test_input($data) {
   $data = trim($data);
   $data = stripslashes($data);
   $data = htmlspecialchars($data);
   return $data;
}
?>
        Enter a number
		<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
            1:<input type="radio" name="nb" value="1" onclick="showForm(1);" <?php if (isset($nb) && $nb=="1") echo "checked"; ?>> &nbsp
            2:<input type="radio" name="nb" value="2" onclick="showForm(2);" <?php if (isset($nb) && $nb=="2") echo "checked"; ?>> &nbsp	
        <br><br>
		<div id="hiddenform1">
			<?php include("fa1.php"); ?>
        </div>
		<div id="hiddenform2">
            <?php include("fa2.php"); ?>
        </div>
		<input type="submit" name="submit" value="Submit">
		</form>
		
<?php
echo "<h2>Your Input:</h2>";
echo $nb;
echo "<br>";
?>
		
    </body>
</html>
fa1.php:
Quantity 1:<input type="number" name="quantity1" value ="100" readonly>
fa2.php:
Quantity 2:<input type="number" name="quantity2" value ="100" readonly>

Re: Garder la visibilité après un submit

Posté : 04 oct. 2014, 14:15
par Nestecha
Hum vu la page...

En jQuery, avec un simple $('form').on('submit').. tu devrais pouvoir lancer ta fonction affichant les hiddenforms lorsque tu submit, et en utilisant event.preventDefault() ta page ne changera pas et tes forms resteront visibles.

Cependant si tu recharges ta page ca reste du PHP, ca se recharge et se remet à zéro.

Tu peux 'contourner' ce problème mais avec du javascript.

Re: Garder la visibilité après un submit

Posté : 04 oct. 2014, 14:34
par bluephpblue
Merci Nestacha. Oui, une idée de la function/option à utiliser en javascript?

Re: Garder la visibilité après un submit

Posté : 04 oct. 2014, 15:15
par Nestecha
Bah...c'est écrit dans mon post x)

Event.preventDefault() empêchera de changer de page.

Re: Garder la visibilité après un submit

Posté : 06 oct. 2014, 10:31
par bluephpblue
Excellent! Merci Nestecha. :D