petit probleme de <button>...

Petit nouveau ! | 3 Messages

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,

Eléphant du PHP | 53 Messages

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.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Petit nouveau ! | 3 Messages

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 ,

Eléphant du PHP | 53 Messages

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.
Ce n'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison.

Petit nouveau ! | 3 Messages

30 juil. 2012, 14:08

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

Mammouth du PHP | 2278 Messages

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;	
}
?>
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD