par
Andes » 02 janv. 2012, 13:38
<?php
$pdo = new PDO('mysql:host=localhost;dbname=latienne','ton user','ton mot de passe de ton user');
$prepare = $pdo->prepare('select SELECT count(*) as nb FROM option WHERE id_service ='.$id_service.' and id_option = ?');
foreach ($_POST['options'] as $opt){
if (in_array($opt,$_POST['optionsvalues'])){
// ok, on vérifie que cette option soit valide dans la table
$prepare->bindValue(1, $_POST['optionsValues']['opt'], PDO::PARAM_INT);
$prepare->execute();
$ret = $prepare->fetch(PDO::FETCH_OBJ);
if ($ret !== 0 {
// la c'est bon
echo 'l\'option '.$opt.' est cochée';
}
else {
// la valeur de l'option choisie n'existe pas !
}
}
else {
// erreur l'options choisie n'a pas de valeur associée c'pas bien ;)
}
}
echo "nombre d'option selectionné :".count($_POST['options']);
?>
il nécessite que tu passe en "value" des optionsValues l'id_option idem pour la valeur dans options.
bon après c'est la structure de tes tables, je suppose que le "$id_service" est géré avant et que j'ai bien compris ce que tu souhaite
@+
Merci de ta réponse et du temps que t'as passé à écrire le code, cependant je n'arrive pas à faire passer le select, j'ai ton petit message (erreur l'options choisie n'a pas de valeur associée c'pas bien) qui s'affiche, je pense que ca vient du fait que je n'ai pas compris t'as phrase "il nécessite que tu passe en "value" des optionsValues l'id_option idem pour la valeur dans options.". Je ne vois pas ce que tu veux me dire par là... :/
Je veux dire qu'on a la relation suivante :
foreach($_POST['options'] as $index => $option)
echo "option $option, valeur {$_POST['optionValues'][$index]}";
Merci pour ta réponse, avec ton code, cela fonctionne correctement, mon seul soucis est que si je ne coche que la 2e checkbox (et donc pas la première) et que je choisi par exemple pour sélection 3. Dans la page de vérif il me prend comme sélection : "0", ce chiffre correspondant au select censé être lié à la première checkbox :/ Je sais pas si j'ai été clair...
En tout cas, cela marche correctement si je coche le premier select, etc. Les sélections correspondent bien, il y'a un problème de décalage dès que je saute un checkbox.
Un in_array pourrait-il faire l'affaire ?
Merci à vous 2.
ps : merci pour la lecture

On en apprend tous les jours

[quote="moogli"]
[php]
<?php
$pdo = new PDO('mysql:host=localhost;dbname=latienne','ton user','ton mot de passe de ton user');
$prepare = $pdo->prepare('select SELECT count(*) as nb FROM option WHERE id_service ='.$id_service.' and id_option = ?');
foreach ($_POST['options'] as $opt){
if (in_array($opt,$_POST['optionsvalues'])){
// ok, on vérifie que cette option soit valide dans la table
$prepare->bindValue(1, $_POST['optionsValues']['opt'], PDO::PARAM_INT);
$prepare->execute();
$ret = $prepare->fetch(PDO::FETCH_OBJ);
if ($ret !== 0 {
// la c'est bon
echo 'l\'option '.$opt.' est cochée';
}
else {
// la valeur de l'option choisie n'existe pas !
}
}
else {
// erreur l'options choisie n'a pas de valeur associée c'pas bien ;)
}
}
echo "nombre d'option selectionné :".count($_POST['options']);
?>[/php]
il nécessite que tu passe en "value" des optionsValues l'id_option idem pour la valeur dans options.
bon après c'est la structure de tes tables, je suppose que le "$id_service" est géré avant et que j'ai bien compris ce que tu souhaite :mrgreen:
@+[/quote]
Merci de ta réponse et du temps que t'as passé à écrire le code, cependant je n'arrive pas à faire passer le select, j'ai ton petit message (erreur l'options choisie n'a pas de valeur associée c'pas bien) qui s'affiche, je pense que ca vient du fait que je n'ai pas compris t'as phrase "il nécessite que tu passe en "value" des optionsValues l'id_option idem pour la valeur dans options.". Je ne vois pas ce que tu veux me dire par là... :/
[quote="xTG"]
Je veux dire qu'on a la relation suivante :
[php]foreach($_POST['options'] as $index => $option)
echo "option $option, valeur {$_POST['optionValues'][$index]}";[/php][/quote]
Merci pour ta réponse, avec ton code, cela fonctionne correctement, mon seul soucis est que si je ne coche que la 2e checkbox (et donc pas la première) et que je choisi par exemple pour sélection 3. Dans la page de vérif il me prend comme sélection : "0", ce chiffre correspondant au select censé être lié à la première checkbox :/ Je sais pas si j'ai été clair...
En tout cas, cela marche correctement si je coche le premier select, etc. Les sélections correspondent bien, il y'a un problème de décalage dès que je saute un checkbox.
Un in_array pourrait-il faire l'affaire ?
Merci à vous 2.
ps : merci pour la lecture :) On en apprend tous les jours :)