Problème débutant PHP
Fermé
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
-
2 févr. 2016 à 08:39
Snoop_dogg Messages postés 66 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 23 juillet 2016 - 3 févr. 2016 à 16:31
Snoop_dogg Messages postés 66 Date d'inscription samedi 3 janvier 2015 Statut Membre Dernière intervention 23 juillet 2016 - 3 févr. 2016 à 16:31
A voir également:
- Problème débutant PHP
- Alert php ✓ - Forum PHP
- Header php - Astuces et Solutions
- Undefined index php - Astuces et Solutions
- Retour a la ligne php ✓ - Forum PHP
- Modulo php ✓ - Forum PHP
4 réponses
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
Modifié par jordane45 le 2/02/2016 à 09:09
Modifié par jordane45 le 2/02/2016 à 09:09
Bonjour,
Si le but est de faire la somme des prix des "options" sélectionnées....
Je verrai bien quelque chose de ce genre :
Cordialement,
Jordane
Si le but est de faire la somme des prix des "options" sélectionnées....
Je verrai bien quelque chose de ce genre :
<?php
//--------------------------------------------------------------------//
// Requete pour construire les boutons RADIO
//--------------------------------------------------------------------//
try{
$sql = "SELECT * FROM `Krampe Big body 550 carrier` ";
$reponse = $bdd->query($sql); // récupération des données
//on stocke le résultat dans un array
$result = $reponse->fetchAll();
//on ferme la connexion
$reponse->closeCursor();
} catch (Exception $e){
die('Erreur : ' . $e->getMessage());
}
//--------------------------------------------------------------------//
//Traitement du SUBMIT
//--------------------------------------------------------------------//
$prix_total_selection = 0;
//récupération "propre" des variables
$options = !empty($_POST['option']) ? $_POST['option'] : NULL;
if($options){ //on récupère ici les options qui ne sont pas vide
//le temps des tests :
print_r($options);
//on boucle sur les "options" selectionnées
foreach($options as $O){
$prix_total_selection += (float)$O;
}
}
?>
<form method="post" id="formulaire_benne" action="" >
<fieldset>
<legend><strong>Formulaire de calcul du prix d'une benne KRAMPE</strong></legend>
<? foreach($result as $donnees){
$id = $donnees['id'];
$prix = $donnees['prix'];
$option = $donnees['option'];
$detail = $donnees['detail'];
echo "Numéro de l'option : <strong> $option </strong>
<label> $detail </label><br/>
<input type='radio' name='$option' value='$prix' id='oui' />oui
<input type='radio' name='$option' value='0' id='non' />non
<br/><br/>Prix :<strong>$prix € </strong>
<br/><hr/><br/> ";
}
?>
<br/><br/>
<input type="submit" value="Calculer" name="ok"/>
</fieldset>
</form>
<?php
echo " Total selection :".$prix_total_selection ;
?>
Cordialement,
Jordane
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
2 févr. 2016 à 10:08
2 févr. 2016 à 10:08
Wow! Quelle rapidité! Chapeau!
Par contre, total sélection reste toujours à 0
C'est normal?
Dois-je récupérer la variable sur une autre page?
(action = ...)
Par contre, total sélection reste toujours à 0
C'est normal?
Dois-je récupérer la variable sur une autre page?
(action = ...)
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
2 févr. 2016 à 10:10
2 févr. 2016 à 10:10
J'ai aussi oublier de préciser, en haut dans try {}, j'ai rajouter :
$bdd = new PDO("'');
$bdd = new PDO("'');
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
2 févr. 2016 à 10:17
2 févr. 2016 à 10:17
Que donne la ligne print_r($options); ?
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
2 févr. 2016 à 10:19
2 févr. 2016 à 10:19
Rien :/
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
2 févr. 2016 à 10:29
2 févr. 2016 à 10:29
Et si tu mets un print_r($_POST); placé au début du script ?
(après avoir coché des radios puis avoir cliqué sur le submit bien sûr...)
(après avoir coché des radios puis avoir cliqué sur le submit bien sûr...)
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
2 févr. 2016 à 10:40
2 févr. 2016 à 10:40
Array ( [10157] => 25590 [35174] => 0 [35338] => 2350 [35390] => 0 [32934] => 2620 [12730] => 1250 [13082] => 0 [12390] => 0 [16500] => 0 [18100] => 0 [16052] => 0 [16100] => 0 [15590] => 0 [20210] => 0 [20032] => 60 [20400] => 0 [11332] => 2160 [11109] => 180 [23754] => 2160 [7011] => 0 [ok] => Calculer ) Total selection :0
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
Modifié par Snoop_dogg le 2/02/2016 à 14:08
Modifié par Snoop_dogg le 2/02/2016 à 14:08
Oui mais javascript je connais encore moins :/
Il me renvoi une erreur :
Parse error: syntax error, unexpected '"._oui' />oui ' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' on line 75
Qui correspond a ces deux lignes
En tout cas merci beaucoup pour le temps accordé !
Il me renvoi une erreur :
Parse error: syntax error, unexpected '"._oui' />oui ' (T_CONSTANT_ENCAPSED_STRING), expecting ',' or ';' on line 75
Qui correspond a ces deux lignes
<input type='radio' name='radio_".$option."' value='$prix' id='".$option"._oui' />oui
<input type='radio' name='radio_".$option."' value='0' id='".$option"._non' />non
En tout cas merci beaucoup pour le temps accordé !
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
2 févr. 2016 à 14:10
2 févr. 2016 à 14:10
J'ai fait une erreur de copier/coller.
Le "." est mal placé
Le "." est mal placé
id='".$option."_oui' id='".$option."_non'
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
2 févr. 2016 à 14:44
2 févr. 2016 à 14:44
//le temps des tests
echo "<br>Option selectionnée : ".$optionId. " valeur :".$value;
ne s'affiche pas...
$prix_total_selection reste a 0
Par contre ton array retourne bien les résultats
Array
(
[radio_10157] => 25590
[radio_35174] => 0
[radio_35338] => 0
[radio_35390] => 0
[radio_32934] => 0
[radio_12730] => 0
[radio_13082] => 0
[radio_12390] => 0
[radio_16500] => 0
[radio_18100] => 0
[radio_16052] => 0
[radio_16100] => 0
[radio_15590] => 0
[radio_20210] => 0
[radio_20032] => 0
[radio_20400] => 0
[radio_11332] => 0
[radio_11109] => 0
[radio_23754] => 0
[radio_7011] => 0
[ok] => Calculer
)
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
2 févr. 2016 à 15:06
2 févr. 2016 à 15:06
J'ai du me tromper quelque part...
Peux tu modifier le code de la boucle comme ceci :
Peux tu modifier le code de la boucle comme ceci :
if(!empty($_POST)){
foreach($_POST as $K=>$value){
echo "<br> k = ".$K. " - value = ".$value;
//on regarde si le name correspond à un bouton radio : name='radio_".$option."'
$substrOpt = substr($K,0,5);
echo "<br> substrOpt => ".$substrOpt;
if($substrOpt=="radio_"){
//on récupère l'option
$optionId = str_replace("radio_","",$K);
//le temps des tests
echo "<br>Option selectionnée : ".$optionId. " valeur :".$value;
//on additionne les montants :
$prix_total_selection += $value;
}
}
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
2 févr. 2016 à 15:15
2 févr. 2016 à 15:15
jordane45
Messages postés
37253
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 mars 2023
4 551
2 févr. 2016 à 15:19
2 févr. 2016 à 15:19
Çà donne un truc un peu bizarre
Ce n'est pas bizarre... c'est pile poile ce que je lui ai demandé d'afficher....
Il ne reste qu'à changer la ligne :
$substrOpt = substr($K,0,5);
par :
$substrOpt = substr($K,0,6);
et à commenter les lignes de ECHO que j'avais ajouté pour les tests
et ça devrait être ok.
Donc, modifie le code comme ceci :
if(!empty($_POST)){
foreach($_POST as $K=>$value){
// echo "<br> k = ".$K. " - value = ".$value;
//on regarde si le name correspond à un bouton radio : name='radio_".$option."'
$substrOpt = substr($K,0,6);
// echo "<br> substrOpt => ".$substrOpt;
if($substrOpt=="radio_"){
//on récupère l'option
$optionId = str_replace("radio_","",$K);
//le temps des tests
echo "<br>Option selectionnée : ".$optionId. " valeur :".$value;
//on additionne les montants :
$prix_total_selection += $value;
}
}
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
2 févr. 2016 à 15:51
2 févr. 2016 à 15:51
Youhouuuu ça fonctionne à merveille !
Mille merci, et chapeau ;) quelle rapidité !
Mille merci, et chapeau ;) quelle rapidité !
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
Modifié par Snoop_dogg le 2/02/2016 à 16:57
Modifié par Snoop_dogg le 2/02/2016 à 16:57
Une dernière petite question...
Si je veux récupérer toutes les lignes ou "oui" a été sélectionné, je pense que le code devrait ressembler à ça :
Seulement, je ne sais pas ou le placer... De plus il ne m'affiche qu'une seule ligne (la 1ere), et pas les détails...
Si je veux récupérer toutes les lignes ou "oui" a été sélectionné, je pense que le code devrait ressembler à ça :
<? echo "<br>Option selectionnée : ".$optionId. "Détail :" . $detail ." valeur :".$value;?><br/>
Seulement, je ne sais pas ou le placer... De plus il ne m'affiche qu'une seule ligne (la 1ere), et pas les détails...
Snoop_dogg
Messages postés
66
Date d'inscription
samedi 3 janvier 2015
Statut
Membre
Dernière intervention
23 juillet 2016
7
3 févr. 2016 à 16:31
3 févr. 2016 à 16:31
Désolé de vous déranger encore, mais je n'y arrive décidément pas...
J'essaye de comprendre le code mais bon :/ pas évident pour un débutant.
J'essaye de comprendre le code mais bon :/ pas évident pour un débutant.
