Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 14h18   #1
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 27
Points : 27
Par défaut Tableaux avec MAJ et suppression

Bonjour à tous,

J'effectue un SELECT (implémenté dans la DAL) sur ma base de données et je forme un tableau avec les résultats.
Je souhaiterais ajouter 2 petites icônes (ou simple bouton) à côté de chaque ligne qui entraineraient :
- la modification de la ligne du tableau : affichage d'un formulaire pré-rempli avec les valeurs de la ligne où j'apellerai ensuite ma fonction update de la couche DAL.
- la suppression de la ligne du tableau : suppression directe de la BD.

Je n'ai cependant aucune idée du moyen d'y parvenir.

Si quelqu'un avait un exemple ou des idées cela m'aiderait grandement .

Merci d'avance pour vos réponses.
West-tck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 15h05   #2
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Rajoute un onclick sur tes images:

pour la suppression:
Code :
onclick="window.location.href='page.php?Supprimer=<?php echo $Id; ?>'"
pour la modification:

Code :
onclick="afficherformulaire()"
Sachant que la fonction afficherformulaire va modifier la propriété display du formulaire et du tableaux pour cacher la tr d'affichage et afficher la tr de modification
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 15h39   #3
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 27
Points : 27
Je n'ai pas bien compris comment va agir le OnClick :

J'ai commencé à modifier mon SELECT (dans la couche DAL) pour afficher un lien vers la suppression :

Code :
<td><a href="IHM/supprimer.php?n=' . $data['NUM_OPERATION'] . '">supprimer</a></td>
Je récupère la valeur de ma clé primaire dans un autre script "supprimer.php"

Dans supprimer.php :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include'Monprojet\Autoloader.php';
 
//Numero de l'opération à supprimer qui est donnée par la DAL
$numop = $_GET['n'];
//On instancie un BAL
$oBAL = new OperationBAL();
//On envoie le traitement à la couche inférieure BAL
$oBAL->Delete($numop);
//Message d'information pour l'ajout dans la BD
echo '<h3>Votre Opération a été supprimée de la base de donnée.</h3>';
//On envoie le traitement du select à la couche inférieure
$oBAL->Selection();
?>
Mon autoload n'est pas chargé apparamment car il est chargé dans le fichier qui contient mon tableau, et qui utilise le fichier supprimer.php

J'ai essayé en faisant des include des classes appelées et cela marche.
Je voudrais également que le traitement de ce script ne fasse que recharger le tableau sur ma page actuelle et qu'il n'ouvre pas une autre page ...
West-tck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 16h00   #4
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
rajoute un:

Code :
header("Location: tapage.php");
à la fin de ton script pout rediriger vers la page de ton tableau
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 16h36   #5
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 27
Points : 27
supprimer.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
//include'C:\wamp\www\Monprojet\Autoloader.php';
include'C:\wamp\www\Monprojet\Persistance\DAL\OperationDAL.php';
include'C:\wamp\www\Monprojet\Persistance\BAL\OperationBAL.php';
//Numero de l'opération à supprimer qui est donnée par la DAL
$numop = $_GET['n'];
//On instancie un BAL
$oBAL = new OperationBAL();
//On envoie le traitement à la couche inférieure BAL
$oBAL->Delete($numop);
//Redirection
header("Location: AfficherOperation.php");
?>
AfficherOperation.php :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    <body>
        <?php
        include'C:\wamp\www\Monprojet\Autoloader.php';
        ?>
        <h1>Opérations</h1>
        <br/>
        <br/>
        <?php
        //On instancie un BAL
        $oBAL = new OperationBAL();
        //On envoie le traitement du select à la couche inférieure
        $oBAL->Selection();
        ?>
    </body>
SELECT de la couche DAL :
Code :
<td><a href="IHM/supprimer.php?n=' . $data['NUM_OPERATION'] . '">supprimer</a></td>
Mon souci :
Je lance l'affichage, j'obtiens mon joli petit tableau, je clique sur supprimer, j'obtiens, je suis redirigé sur la même page mais le CSS n'est plus activé et j'ai l'erreur suivante :
Fatal error: Class 'OperationBAL' not found in C:\wamp\www\Monprojet\IHM\AfficherOperation.php on line 21.

Néamoins la ligne a bien été supprimée de la BD ...
West-tck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2011, 18h32   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
C'est marrant que tu aies pas implémenté l'autoloader comme on te l'avait conséillé dans l'autre thread que tu avais ouvert à ce sujet
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 08h20   #7
Membre éprouvé
 
Homme romain escudier
Développeur informatique
Inscription : juin 2011
Messages : 300
Détails du profil
Informations personnelles :
Nom : Homme romain escudier
Âge : 22
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2011
Messages : 300
Points : 471
Points : 471
Ah un adepte du double sujet?
__________________
Pas de solution, pas de probleme

Une réponse utile (ou +1) le pouce vert
Une réponse à votre question

skeud est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 08h35   #8
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 27
Points : 27
Bonjour,

Au niveau de l'implémentation de __autoload(), je n'ai effectivement pas pu mettre en oeuvre vos conseils car je n'ai tout simplement pas compris le code (et pas eu trop de temps pour approfondir ceci), et donc pas pu effectuer les tests pour constater effectivement que les file_exists() étaient très couteux en cycle CPU.

Je re-posterai dans le topic concernant l'autoload si vous pouvez m'apporter quelques précisions.

Au niveau du problème que je rencontre, est-ce à cause de ma fonction autoload ? Je ne comprends pas comment son implémentation (pas optimisée mais fonctionnelle ?) entraine cette erreur.

Merci d'avance pour vos réponses.
West-tck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 10h21   #9
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Citation:
Fatal error: Class 'OperationBAL' not found in C:\wamp\www\Monprojet\IHM\AfficherOperation.php on line 21.
Cette erreur est une incidence de l'absence d'autoloader. Relis le thread que tu avais ouvert, j'y avais posté la réponse appropriée il me semble.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h11.


 
 
 
 
Partenaires

Hébergement Web