petit probleme de <button>...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : petit probleme de <button>...

Re: petit probleme de <button>...

par sirakawa » 30 juil. 2012, 14:15

Version à mon goût:
<?php
$var = 1;
while($var<=5)
{
	$var1 = 'clik'; // il vaut peut-être mieux quoter, simple ou double, les chaînes que tu affectes 

	if(isset($_POST[$var])) // ou $_POST["$var"] mais cette syntaxe ne sert à rien
	{
		$var1 = 'clok';
	}
	// j'ai l'habitude de me servir de print ce qui me permet de jouer sur "" pour encadrer le tout, et ' pour les HTMLeries
	print "
	<form method='POST' action='calendar.php'>
		<button type='submit' name='$var'>$var1</button>
	</form>";
	$var++;
}
?>
mais ça ne bloque pas les changements de valeur. En revanche ceci le fait (il faut appeler calendar.php?passage=0)
<?php
session_start();
//le problème est d'avoir des valeurs initiales la première fois (or le script se recharge. $passage est passé la premièe fois par GET, les suivantes par POST
$passage = isset($_GET['passage']) ? 0 :$_POST['passage'];
if ($passage == 0) // valeurs initiales
{
	$valeurs = array_fill(0,5, "clik"); //valeurs des boutons
	$inactifs = array_fill(0, 5, "");// propriétés disabled des boutons	
	$_SESSION["var"] = $valeurs;
	$_SESSION["inactif"] = $inactifs;	
}
// relecture des valeurs de session chaque fois
for ($i = 1; $i <=5; $i++)
{
	$var = "var";
	$_SESSION[$var][$i] = isset($_SESSION[$var][$i]) ? $_SESSION[$var][$i] : "click";
	$var = "inactif";
	$_SESSION[$var][$i] = isset($_SESSION[$var][$i]) ? $_SESSION[$var][$i] : "";
}
// transfert des valeurs de session
$valeurs = $_SESSION["var"] ;
$inactifs =  $_SESSION["inactif"] ;

// analyse des boutons cliqués chacun se voit a priori réaffecter la valeur stockée dansla session
for ($var = 1; $var<=5; $var ++)
{
	$inactif = $inactifs[$var];
          // valeur du clic sur ce bouton : non cliqué = -1
	$valeur = (isset ($_POST[$var])) ? $_POST[$var] : -1;
	if ($valeur != -1) 
	{
		$valeurs[$var] = "clok";
		$inactifs[$var] = "disabled = 'disabled'";
	}
	
	$var1 = $valeurs[$var]; 
	print "
	<form method='POST' action='calendar.php'>
	<input type ='hidden' name = 'passage' value = '1' />
		<button type='submit'    name='$var' value='$var1' />$var1</button>
	</form>";
//mise à jour de la session
	$_SESSION["var"] = $valeurs;
	$_SESSION["inactif"] = $inactifs;	
}
?>

Re: petit probleme de <button>...

par mickadam » 30 juil. 2012, 14:08

Mille mercis, je vais me lancer dans cette direction...

Re: petit probleme de <button>...

par DiurnaSys » 30 juil. 2012, 13:44

Rebonjour,

En php tu ne peut changer la valeur de ton bouton qu'en rechargeant la page.
Si tu veut le faire sans il te faut t'orienter sur du JavaScript.

Cordialement.

Re: petit probleme de <button>...

par mickadam » 30 juil. 2012, 13:15

Merci pour cette correction, c'est beaucoup plus clair.

En fait je souhaite juste faire un ensemble de boutons où:
- Tous les bouton on une valeur initiale V1,
- Et chaque bouton prend la valeur V2 definitivement si on clique dessus ,

Re: petit probleme de <button>...

par DiurnaSys » 30 juil. 2012, 13:08

Bonjour,

Deux choses :

- Quel est le but de $_POST['' . $var . ''] ? Si tu veut mettre des guillemets autour fait plutot '"' <- quote simple, quote double, quote simple.
- Ta syntaxe du bouton ne me parait pas correcte :
echo ' <form method="POST" action="calendar.php"><button type="submit" name="'.$var.'" value="' . $var1 . '" /></form>';

Cordialement.

petit probleme de <button>...

par mickadam » 30 juil. 2012, 12:56

bonjours à tous,

Novice en programmation, j'ai beau bricoler mon script dans tous les sens, je n'arrive pas à comprendre pourquoi lorsque je "CLOK" un de mes bouton , le bouton que j'ai "CLOKer" avant se "reCLIK"...

vous comprendrez ces histoires de CLIK et de CLOK en voyant mon script:
<?php 

$var = 1;

while($var<=5)
{
$var1 = clik;

if(isset($_POST[''.$var.'']))
{
$var1 = clok;
}

echo ' <form method="POST" action="calendar.php"><button type="submit" name="'.$var.'"> '.$var1.' </button></form>';
$var++;

}

?>

Merci d'avance pour votre aide,