Gestion Membre

Résolu/Fermé
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 - 2 mai 2014 à 08:13
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 - 3 juil. 2014 à 18:16
Bonjour,

Pour gérer les membres j'ai des chekboxs et une liste déroulante en autre.

Je n'arrive pas à saisir pourquoi cela ne fonctionne pas, je suis curieux de comprendre mais pour ça j'ai besoin de vos compétence en PHP.

Si vous avez un moment pour me dire ce que vous en pensez.
Mes checkboxs s'insert bien dans ma BDD mais pas ma liste déroulante.
Si par contre je remplace ma liste déroulante par des checkboxs cela fonctionne.
Merci de votre aide éventuel.
<!--#######################################################################################################################################-->
<?php
	$sql = "SELECT * FROM tb_gestion";
	$requete1 = $bdd->prepare($sql);							
	$requete1->execute();
		while ($donnees = $requete1->fetch(PDO::FETCH_ASSOC))
		{
			echo"<tr>";
			echo"<td width='20%'>".$donnees['nom_gestion']."</td>";
			echo"<td width='20%'><input type='checkbox' name='nom_gestion[]' value='".$donnees['id_gestion']."'></td>";
		}
	$requete1->closeCursor();
?>
<!--#######################################################################################################################################-->
<?php
			echo"<td width='20%'>";
			echo'<select style="width: auto" name="nom_statut" class="content_input" disabled="">';
			echo"<option value=''>- - - Membre - - -</option>";
	$sql = "SELECT * FROM tb_statut";
	$resultat2 = $bdd->prepare($sql);							
	$resultat2->execute();
	
		while ($donnees = $resultat2->fetch(PDO::FETCH_ASSOC))
		{
			echo"<option value=".$donnees["nom_statut"].">".$donnees["nom_statut"]."</option>\n";
		}
			echo"</select>";		
			echo"</td>";
	$resultat2->closeCursor();
?>
<!--#######################################################################################################################################-->
A voir également:

61 réponses

labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
19 mai 2014 à 20:04
Bonjour
En fait je pense que c'est la case "edit" qui influe pour éditer le formulaire non?
J'avais fait ce bout de code avec jquery / php
$(document).ready(function(){
							<?php if (isset ($_REQUEST['action']) AND  $_REQUEST['action'] == 'edit') { ?>//Affiche formulaire pour modification
							$('#formulaire input,select').attr('disabled', '');
							$('#formulaire input[name=action]').attr('value','modifier');
							<?php  } ?>
							<?php if (isset ($_GET['voir']) AND  $_GET['voir'] == 'fiche') { ?>//Affiche formulaire pour voir sans modification
							$('#formulaire input,select').attr('disabled', 'disabled');//les champs en grisés
							$('#formulaire input[name=action]').attr('value', '');							
							$('#formulaire input[type=submit]').hide();//cache l'input de type submit
							$('#formulaire input[type=button]').hide();//cache l'input de type button
							$('#formulaire img[type=image]').hide();//cache l'image de type image
							<?php  } ?>


Merci encore de ton aide mais ton script ne fonctionne pas pour modifier les données j'ai bien analysé ton code et ça me parrait bien alors je ne comprends pas pourquoi il m'est impossible de faire mes modifs.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
19 mai 2014 à 20:05
Petite info

Ies input de type text fonctionne normalement..
Merci
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
20 mai 2014 à 00:30
je te renvoie le script que tu m'a fait concernant les modifs je ne vois pas pourquoi ça ne fonctionne pas.
Merci de ta patience avec mon bazard..

			$sql = ("SELECT tba.*, tbs.nom_statut, GROUP_CONCAT(tbg.nom_gestion SEPARATOR ', ') nom_gestion
FROM tb_adherent tba
    LEFT OUTER JOIN tb_adherent_statut tbas
        ON tbas.rid_adherent = tba.id_adherent
	LEFT OUTER JOIN tb_statut tbs
        ON tbs.id_statut = tbas.rid_statut

	LEFT OUTER JOIN tb_adherent_gestion tbag
        ON tbag.rid_adherent = tba.id_adherent
	LEFT OUTER JOIN tb_gestion tbg
        ON tbg.id_gestion = tbag.rid_gestion
					WHERE id_adherent='" . $PARAM['ID_ADHERENT'] . "'
					ORDER BY nom ASC");			
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
24 mai 2014 à 21:27
Bonjour
Excuse moi de te déranger je suis toujours à la recherche pour pouvoir modifier ma liste déroulante et mes checkboxs.

Comme je te disais tous mes input de type text fontionne bien mais checkboxs et select toujours pas trouvé.

Si tu peux encore me dépanner.?
Je te remercie en attendant
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
24 mai 2014 à 21:51
Bonjour,

je comprend pas ce que tu veux faire.

Est-ce pour l'affichage ? Ou pour mettre à jour la base de données ?
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
25 mai 2014 à 08:36
Bonjour
En fait je cherche à pouvoir modifier ma liste déroulante et mes checkboxs, je récupére mes valeurs comme tu me l'a fait mais toujours impossible de modifier en fait.
J'espère que tu comprendra ce que je veux car pour moi c'est clair mais mes explications ne le sont peut-être pas.
Tu peux me redire si tu ne vois pas ce que je veux dire.
Merci en tout cas de finir de m'aider car j'ai plus que ça à finir pour pouvoir mettre en ligne mon espace membre.
Merci
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
28 mai 2014 à 22:11
Bonjour
Excuse moi mais impossible de trouver pour résoudre mon problème.
J'espère de tout coeur que tu pourras prendre encore un peu de ton temps pour moi.
Merci encore
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
28 mai 2014 à 22:54
Bonjour,

je suis désolé pour le temps entre deux réponses.

pour résumer, tu as ton formulaire d'affiché avec les champs (input) nom, prénom, etc et tu as les checkboxs et le select.

Ce que tu veux, c'est enregistré la modification faite avec ce formulaire.
C'est ça ?

Dans ce cas, il faut faire une requête d'UPDATE différente pour les checkbox et le select.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
31 mai 2014 à 00:26
Bonjour
Oui c'est exactement ce que je souhaiterai pour terminer ma gestion des membres. Malheureusement ça m'a l'air très compliqué par rapport au input de type text.
Les modifs pour checkbox et liste déroulante je n'y parviens pas même avec toutes ma bonne volonté et malgrès les tutos par ci par là.
Pourrai tu m'aider une dernière fois s'il te plait si tu as un peu de temps.
Merci encore
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
1 juin 2014 à 11:55
Bonjour,


en faite, c'est assez simple.
Normalement, la liste déroulante fonctionne de la manière qu'un champ input.
Par contre, les checkboxs, tu dois les traiter comme un tableau.
Il faut que tu modifie ton tableau
$PARAM
:
'RID_GESTION' => isset($_POST['rid_gestion'])?$_POST['rid_gestion']:array()
 /* ... */

puis il faut que tu parcours
$PARAM['RID_GESTION']
:
foreach($PARAM['RID_GESTION'] as $rid_gestion)
{
   $sql = "UPDATE tb_adherent_gestion SET rid_adherent=:rid_adherent, id_gestion=:rid_gestion";
   $requete = $bdd->prepare($sql);
   $requete->bindParam(':rid_adherent', $PARAM['RID_ADHERENT']);
   $requete->bindParam(':rid_gestion', $rid_gestion);		
   $requete->execute();
}


il est possible que tu es une erreur et qu'il faille remplacer
$PARAM['RID_GESTION']
par
$PARAM['NOM_GESTION']
.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
2 juin 2014 à 20:51
Bonjour
Merci pour ton temps passé avec moi, malheureusement j'ai suivi à la lettre tes conseisl mais je peux toujours pas faire mes modifs.
Si tu peux encore regarder mon fichu prolème.
J'ai bien parcouru mon tableau avec...
($PARAM['RID_GESTION']

et avec
($PARAM['NOM_GESTION']


Merci
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
4 juin 2014 à 09:17
Bonjour
Excuse moi encore.
Je me permet de te faire une petite récap concernant mes checkboxs
Merci

Mon tableau
		'RID_ADHERENT'				=> isset($_POST['rid_adherent']) ? $_POST['rid_adherent'] : '',
		'RID_GESTION'				=> isset($_POST['rid_gestion']) ? $_POST['rid_gestion'] :array(),

		'ID_GESTION'				=> isset($_REQUEST['id_gestion']) ? $_REQUEST['id_gestion'] : '',
		'NOM_GESTION'				=> isset($_POST['nom_gestion']) ? $_POST['nom_gestion'] : '',

le switch case à modifier
foreach($PARAM['RID_GESTION'] as $rid_gestion)
{
   $sql = "UPDATE tb_adherent_gestion SET rid_adherent=:rid_adherent, id_gestion=:rid_gestion";
   $requete = $bdd->prepare($sql);
   $requete->bindParam(':rid_adherent', $PARAM['RID_ADHERENT']);
   $requete->bindParam(':rid_gestion', $rid_gestion);		
   $requete->execute();
}

case à éditer pour les modifs
		case 'edit':			
			$sql = ("SELECT tba.*, tbs.nom_statut,
					GROUP_CONCAT(tbg.nom_gestion SEPARATOR ', ') nom_gestion
					FROM tb_adherent tba
					LEFT OUTER JOIN tb_adherent_statut tbas
					ON tbas.rid_adherent = tba.id_adherent
					LEFT OUTER JOIN tb_statut tbs
					ON tbs.id_statut = tbas.rid_statut
					LEFT OUTER JOIN tb_adherent_gestion tbag
					ON tbag.rid_adherent = tba.id_adherent
					LEFT OUTER JOIN tb_gestion tbg
					ON tbg.id_gestion = tbag.rid_gestion
					WHERE id_adherent='" . $PARAM['ID_ADHERENT'] . "'
					ORDER BY nom ASC");	

pour terminer ma liste déroulante dynamique
	$sql = "SELECT
		tb_gestion.nom_gestion,
		tb_gestion.id_gestion,
		NOT(tb_adherent_gestion.rid_adherent IS NULL) checked
		FROM tb_gestion
	    LEFT JOIN tb_adherent_gestion
        ON tb_adherent_gestion.rid_gestion = tb_gestion.id_gestion
        AND tb_adherent_gestion.rid_adherent ='".$PARAM['ID_ADHERENT']."'
		ORDER BY tb_gestion.id_gestion";
	$requete1 = $bdd->prepare($sql);							
	$requete1->execute();
		while ($donnees = $requete1->fetch(PDO::FETCH_ASSOC))
		{
			echo "<tr>";
			echo "<td width='5%'><input type='checkbox' name='nom_gestion[]' value='".$donnees['id_gestion']."'". ($donnees['checked'] ? ' checked="checked"':'') . "></td>";
			echo "<td width='20%'>".$donnees['nom_gestion']."</td>";

			//echo"<tr>";
			//echo"<td width='20%'><input id='checkbox_gestion' class='css-checkbox' type='checkbox' name='nom_gestion[]' value='".$donnees['id_gestion']."'". ($donnees['checked'] ? ' checked="checked"':'') . ">";
			//echo"<label for='checkbox_gestion' class='css-label'>".$donnees['nom_gestion']."</label></td>";
		}
	$requete1->closeCursor();
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
4 juin 2014 à 13:49
Ah désolé, c'est de ma faute.

Ce n'est pas un update qui faut faire, c'est un INSERT.
Il faut supprimer tout les droits de ton utilisateur pour les réinsérer après.

$sql = "DELETE FROM tb_adherent_gestion WHERE rid_adherent = '" . $PARAM['ID_ADHERENT'] . "'";
// execute ici la requête contenu dans $sql


foreach($PARAM['NOM_GESTION'] as $rid_gestion)
{
   $sql = "INSERT ..."; // requête d'insertion des droits de l'utilisateur
   $requete = $bdd->prepare($sql);
   $requete->bindParam(':rid_adherent', $PARAM['RID_ADHERENT']);
   $requete->bindParam(':rid_gestion', $rid_gestion);		
   $requete->execute();
}


il faut aussi que tu modifie ton tableau de paramètres :
'NOM_GESTION' => isset($_POST['nom_gestion']) ? $_POST['nom_gestion'] : array()


ça devrait mieux fonctionner.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
4 juin 2014 à 23:27
Bonjour

Plusieurs heures dessus et toujours pas résolu alors je m'en remet encore à toi.
Je ne comprend pas cette logique en fait.

L'INSERT que j'ai fait pour les checkbox ça fonctionne lorsque j'édit de nouveau le formulaire les valeurs sont présentent.
Alors à ce moment là il faut bien faire un UPDATE ?

Pour que les modifs fonctionnent non?

Tu me dit qu'il faut faire un INSERT au lieu d'un UPDATE je suis perdu complet.
Si j'ai compris ce que tu m'a dit!
Il faut supprimer les valeurs pour de nouveaux les Insérer?
Je sais pas si je vais retourner au javascript un peu moins compliqué parce que j'en perds mon latin...
les inputs de type text c'est cool mais les checkboxs et liste déroulante c'est la galère.

Veux tu que je te renvoie ma page complète? afin que tu puisse revoir mon code au complet.
Merci encore
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
5 juin 2014 à 11:13
oui je viens bien que tu me renvoi ta page.
ça m'aidera à te fournir des réponses plus précise.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
5 juin 2014 à 23:15
Bonjour
Voilà la page.
Avec mes remerciements.


https://www.cjoint.com/?DFfxoGAoJNy
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
10 juin 2014 à 10:04
Bonjour,

Je voudrais juste savoir si tu as eu le temps de regarder mon bazard (chekbox et liste déroulante)
De mon côté j'essaie met en vain. Avant je l'avais fait en javascript, c'était moins compliqué, mais aussi moins bien c'est pour cela que je voulais quelque chose de dynamique.

Merci de ton aide.
0
Gigatrappeur Messages postés 226 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 3 juillet 2014 25
12 juin 2014 à 14:26
Bonjour,

après analyse de la nouvelle page que tu m'a envoyé, il faut que tu fasse ce que je t'ai indiqué dans mon précédent poste :
Il faut supprimer tout les droits de ton utilisateur pour les réinsérer après.
$sql = "DELETE FROM tb_adherent_gestion WHERE rid_adherent = '" . $PARAM['ID_ADHERENT'] . "'";
// execute ici la requête contenu dans $sql

foreach($PARAM['NOM_GESTION'] as $rid_gestion)
{
   $sql = 'INSERT INTO tb_adherent_gestion (rid_adherent, rid_gestion) VALUES ("'.$PARAM['ID_ADHERENT'].'", "'.$rid_gestion.'")';
   $requete = $bdd->prepare($sql);
   $requete->execute();
}


En effet, si tu as modifié les droits en cochant/décochant des cases, il faut supprimer les droits qui ont été décoché et ajouter les droits qui ont été coché.
Le fait de supprimer tout et de remettre que ceux qui sont coché permet de simplifier le processus et d'être sur qu'il n'y a pas de doublons ni de ligne fantôme.
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
13 juin 2014 à 22:18
Bonjour
Merci encore pour ton aide.
Malheureusement j'ai éssayé à la lettre tout ce que tu m'a expliqué, mais toujours aucun résultat.
En fait je me demande si je me suis bien expliqué pour ce problème, en fait je sais pas trop.
La méthode que tu me préconise je me demandais si vraiment il n'y a pas plus simple.
Car par exemple pour les inputs de type text il n'y a rien de tout ça et c'est bien le même principe.
En deux mot je n'y arrive pas.
Si ça t'ennuie pas trop de continuer à m'aider.
Merci
0
labourette Messages postés 657 Date d'inscription dimanche 24 août 2008 Statut Membre Dernière intervention 24 juillet 2016 6
17 juin 2014 à 00:16
Bonjour
J'ai essayé très longtemps je dois passer à côté de quelque chose, impossible de voir quoi.
Merci si tu peux me coder exactement comme tu le vois, comme ça je pourrai passer à autre chose.
Désolé mais vraiment j'ai fait de mon mieux pour arriver à un résultat met en vain.
Merci
0