Problème bouton radio et SQL

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 : Problème bouton radio et SQL

Re: Problème bouton radio et SQL

par xTG » 21 févr. 2012, 23:28

Ta requête préparée sert à rien là...
Ainsi ce sera sans doute mieux :
$req = $bdd->prepare("INSERT INTO `option_vehicule` (`id_option_vehicule` ,`vehicule_id` ,`option_id`) VALUES (NULL ,  :vehicule_id,  :id_option)");
foreach ($tabCheckbox as $checkbox){
  $idoption = addslashes($checkbox);
 
  $req->execute(array(
    'vehicule_id' => $dernier_id,
    'id_option' => $idoption
  ));
}

Re: Problème bouton radio et SQL

par banban55 » 21 févr. 2012, 23:20

voila c'est enfin bon :D pas facile mais fonctionnel...
<?php
	if (isset($_POST['checkbox']))
	{    
		//connection à la base de données
		require_once '../_inc/_connexion5.php';
		
		//recupérer ces valeurs dans un array
		$tabCheckbox = $_POST['checkbox'];
		
		foreach ($tabCheckbox as $checkbox) 
		{
			$idoption = addslashes($checkbox);
			$req = $bdd->prepare("INSERT INTO `option_vehicule` (`id_option_vehicule` ,`vehicule_id` ,`option_id`) VALUES (NULL ,  '$dernier_id',  '$idoption')");
 
			$req->execute(array(
			'option_id' => $idoption
			));
		}
	}	
	else
	{	
		echo 'pas de d\'option';
	}
?>

Re: Problème bouton radio et SQL

par banban55 » 21 févr. 2012, 23:03

voici ma page de traitement. Mais $_POST['checkbox'] n'a aucune valeur....
<?php
	if (isset($_POST['checkbox']))
	{    
		//connection à la base de données
		require_once '../_inc/_connexion5.php';
		
		//recupérer ces valeurs dans un array
		$tabCheckbox = $_POST['checkbox'];
		
		foreach ($tabCheckbox as $checkbox) 
		{
			$idoption = addslashes($checkbox);
			$req = $bdd->prepare("INSERT INTO `option_vehicule` (`id_option_vehicule` ,`vehicule_id` ,`option_id`) VALUES (NULL ,  '$dernier_id',  '$idoption')");
 
			$req->execute(array(
			'publier' => 1,
			'idClient' => $idoption
			));
		}
	}	
	else
	{	
		echo 'pas de d\'option';
	}
?>

Re: Problème bouton radio et SQL

par banban55 » 21 févr. 2012, 22:21

merci pour le lien, Comment je peux faire pour mettre la valeur de $_POST dans le array pour le traitement les options ?

Re: Problème bouton radio et SQL

par moogli » 21 févr. 2012, 21:56

cette option semble correct te reste a l'exploiter correctement.

je te conseil un p'tit sur la doc de la fonction array_key :)

@+

Re: Problème bouton radio et SQL

par banban55 » 21 févr. 2012, 20:58

me voici de retour pour la suite des aventures des cases à cocher...

je pense que mon formulaire doit être bon maintenant, j'aimerai juste avoir confirmation.
<form id="ajout_annonce1" name="ajout_annonce" method="post" action="traitement_option.php">
				<fieldset class="ajout_auto">
					<legend>Etape 5 - Choix des options</legend>
							<div id="contenu_option">
							<?php
								//connection à la base de données
								require_once '../_inc/_connexion.php';

								// affichage de toutes les options dispo
			
								$requ_option = ("SELECT * FROM options ORDER BY id_option ASC");
								$option = mysql_query($requ_option);
									while ($row_option = mysql_fetch_array($option))
									{
									echo $row_option['titre_option'] . ' : <input type="checkbox" name="option[' . $row_option['id_option'] . ']" /><br />';
									}
							?>
							</div>
					</div>
					
				</fieldset>
				<input type="hidden" name="<?php echo $_SESSION['last_id']; ?>" id="last_id" />
			<div id="bouton_form"><input class="bouton_submit" name="envoyer" type="submit" value="Etape suivante -> Ajout des photos" /></div>
			</form>	

Re: Problème bouton radio et SQL

par moogli » 21 févr. 2012, 07:58

Cette variable est la pour l'exemple, elle indique que tu doit utiliser les valeurs issu de ta requête SQL. (donc final il y a des chances que tu utilise un while plutôt qu'un foreach mais c'est la même chose.

Petit nuance sur le code html, si tu ne veux pas t'emmerder passe la valeur de l'id en value de la Checkbox et non en index du tableau ceci pour éviter d'avoir un tableau indexé par les valeurs mais sans données.
De toute façon les Checkbox non cochée ne sont pas envoyée.

@+

Re: Problème bouton radio et SQL

par banban55 » 20 févr. 2012, 22:49

Ok. J'ai compris le principe, j'ai autre petite question, à quoi correspond la variable $MesOptionDeMaTable ?

Re: Problème bouton radio et SQL

par xTG » 20 févr. 2012, 21:51

Oui tu boucles sur la variable $_POST['option'] qui est un array et dans ta boucle tu mets ta requête INSERT.
A chaque itération de la boucle tu auras une insertion.

Re: Problème bouton radio et SQL

par banban55 » 20 févr. 2012, 19:07

Donc pour revenir un peu en arrière,

J'ai ma boucle qui affiche toutes les options
foreach($mesOptionsDeMaTable as $option){
  echo $option['titre'] . ' : <input type="checkbox" name="option[' . $option['id'] . ']" /><br />';
}
ensuite pour la traitement je récupère à valeur ( sous forme d'un tableau avec toutes les cases cocher) de $_POST que j'ajoute à ma requête INSERT ?

Re: Problème bouton radio et SQL

par xTG » 20 févr. 2012, 18:55

Notation tableau :
<input type="text" name="text[0]" value="1" />
<input type="text" name="text[1] value="2" />
Résultat récupéré ($_POST['text']) :
Array(
0 => 1,
1 => 2
)

Re: Problème bouton radio et SQL

par banban55 » 20 févr. 2012, 18:41

Alors je suis perdu. Je comprends pas ma méthode que tu me propose.

Re: Problème bouton radio et SQL

par xTG » 20 févr. 2012, 18:32

Non tu n'as pas de notation tableau dans ton formulaire (cf l'attribut name).

Re: Problème bouton radio et SQL

par banban55 » 20 févr. 2012, 18:14

c'est encore tres flou... mon formulaire est donc bon ? le code que tu me proposes il sera nécessaire pour le traitement uniquement ?

Re: Problème bouton radio et SQL

par xTG » 20 févr. 2012, 17:28

Tu peux utiliser une notation tableau pour les options.

Exemple :
foreach($mesOptionsDeMaTable as $option){
  echo $option['titre'] . ' : <input type="checkbox" name="option[' . $option['id'] . ']" /><br />';
}
Cela renverra un tableau dont l'index sera l'id de l'option et tu auras en valeur la chaîne checked et aucun index pour les checkbox non cochée si je me souviens bien.
Donc avec ça tu n'as plus qu'à refaire une boucle avec une requête INSERT dedans utilisant l'id de l'option et l'id de ton véhicule.