Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
946 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Affichage bouton dans un tableau !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Affichage bouton dans un tableau !

n°2284748
int2
Posté le 05-07-2016 à 14:53:04  profilanswer
 

Bonjour,

 

J'ai un problème dont je pense que vous pourrez m'aider. J'ai réussi à afficher ma base de données phpmyadmin sur mon site internet sous forme de tableau. Malgrès tout je souhaiterais ajouter un bouton à chaque ligne du tableau me permettant de récupérer les informations de la ligne sélectionnée.      

 

En vous remerciant beaucoup d'avance !


Message édité par int2 le 05-07-2016 à 23:25:05
mood
Publicité
Posté le 05-07-2016 à 14:53:04  profilanswer
 

n°2284799
int2
Posté le 06-07-2016 à 13:02:45  profilanswer
 

Up ! Courageux je fais appel à toi

n°2284800
mechkurt
Posté le 06-07-2016 à 13:28:25  profilanswer
 

Ben soit plus précis, c'est quoi récupérer pour toi ?
 
Poste ton code et dit nous ou ca bloque, on pourra un peu plus facilement t'aider...


---------------
D3
n°2284900
int2
Posté le 08-07-2016 à 14:41:25  profilanswer
 

Désolé je pensais t'avoir répondu.
 
En fait j'ai dans une base de données une liste de mécaniciens (nom, prenom, salaire) dans une base de donnée que j'arrive afficher sous forme de tableau sur mon site web. Mais je souhaiterais que l'utilisateur puisse embaucher le mécanicien qu'il a choisi par le biais d'un bouton "embaucher".  
 
Donc je n'arrive pas dans mon code à ajouter un bouton "embaucher" (comme c'est dans du code php je pense...) . Et je ne vois pas trop non plus comment récupérer la ligne en question sélectionnée par l'utilisateur correspondant au mécanicien qu'il souhaite embaucher :S.
 

Code :
  1. <div class="container">
  2. <div class="align-center">
  3.   <?php
  4.     $mysql = mysqli_connect('localhost', 'user', 'password', 'ma_base');
  5.     if(!$mysql) {
  6.        exit('Impossible de se connecter : ' . mysqli_error());
  7.     }
  8.     $nom_base = 'ma_base';
  9.     $bdd = mysqli_select_db($mysql,$nom_base);
  10.     if (!$bdd) {
  11.         exit('Impossible de sélectionner la base de données : ' . mysqli_error());
  12.     }
  13.     $rTables = mysqli_query($mysql,'SHOW TABLES FROM '.$nom_base);
  14.     while($Table = mysqli_fetch_assoc($rTables))
  15.     {
  16.         $rChamps = mysqli_query($mysql,'SHOW COLUMNS FROM '.$Table['Tables_in_'.$nom_base]);
  17.         $largeur_cellule = floor(100/mysqli_num_rows($rChamps));
  18.         echo '<table><tr><th colspan="'.mysqli_num_rows($rChamps).'">'.$Table['Tables_in_'.$nom_base].'</th></tr><tr>';
  19.         while($Champ = mysqli_fetch_assoc($rChamps))
  20.         {
  21.             echo '<td style="width:'.$largeur_cellule.'%;font-weight:bold;">'.$Champ['Field'].'<br /><em>'.$Champ['Type'].'</em></td>';
  22.  }
  23.         echo '</tr>';
  24.         $rValeurs = mysqli_query($mysql,'SELECT * FROM t_mecanicien');
  25.         while($Valeur = mysqli_fetch_assoc($rValeurs))
  26.         {
  27.             echo '<tr>';
  28.             foreach($Valeur as $Cle => $Val) echo '<td>'.$Val.'</td>';
  29.             echo '</tr>';
  30.         }
  31.         echo '</table>'."\n";
  32.     }
  33.     //mysqli_close();
  34. ?>
  35. </div>
  36. </div>


 
Pleins de remerciements d'avance!

n°2284904
Moumoule
Posté le 08-07-2016 à 14:49:42  profilanswer
 

Un conseil avant tout: C'est pas (plus) la meilleure solution de générer de l'affichage côté serveur. La construction de ta table devrait se faire côté client. Ca te faciliterai aussi le binding d'une action au bouton.
 
Comment est-ce que tu appelles ce script ? Via une requête ajax ? Dans tous les cas, si tu ajoutes un input button (ou un <button> tout simplement), il faudra y associer une action.
 
Donc dans la boucle qui énumère les mécaniciens, tu ajoutes un tr/td avec un input button. Ensuite, il te faut y associer une action après l’exécution du script (côté client de préférence)
 
C'est pour ca qu'une meilleure solution serait:
 
- requête ajax de ton script php
- script php qui renvoie les informations des mécaniciens (sous forme de JSON p.ex)
- on success de la requête ajax, tu construis le tableau (en javascript, à l'ancienne ou bien en utilisant un template)
- pendant la construction, tu ajoutes le bouton et tu associes une action (une autre requête vers le serveur ?)

Message cité 2 fois
Message édité par Moumoule le 08-07-2016 à 14:50:35
n°2284906
int2
Posté le 08-07-2016 à 15:02:47  profilanswer
 

D'accord je te remercie beaucoup de ta réponse. Ok c'est pas top de générer mon tableau côté serveur, il faudrait mieux le faire en javascript en ajoutant alors à chaque ligne un bouton.  
 
En fait la construction de mon tableau n'est appelée par rien, elle se fait comme ça automatiquement. Ce serai bien que j'utilise ajax notamment pour le fait que à l'ajout d'un mécaniciens, l'utilisateur pourrait voir sur la même page au dessus de la liste de mécaniciens disposnibles sur le marché du travail, de sa liste de mécaniciens embauchés. Et donc c'est vrai que de l'ajax serait bien pour faire cela automatiquement sans avoir besoin de rafraichir la page, mais ça a vraiment l'air compliqué l'ajax alors peut être que je vais rester à du php normal. :s
 
Mais alors là je ne vois pas comment je peux faire le lien entre mes mécaniciens de ma base de données et mon tableau. Comment je pourrais afficher les attributs de mes mécaniciens dans mon tableau? Je débute vraiment en PHP, tu n'aurais pas par hasard un script simple qui me le montre?
 

n°2284940
int2
Posté le 09-07-2016 à 03:54:02  profilanswer
 

Up! Pour un très courageux

n°2284991
mechkurt
Posté le 11-07-2016 à 09:45:57  profilanswer
 

Le mieux c'est que tu te formes un minimum à PHP / MYSQL, avec ce cours par exemple : https://openclassrooms.com/courses/ [...] -donnees-2
 
Et que tu reviennes un peu plus tard, car on ne peut pas taper tout ton code à ta place...


---------------
D3
n°2285059
rufo
Pas me confondre avec Lycos!
Posté le 11-07-2016 à 23:56:46  profilanswer
 

Moumoule a écrit :

Un conseil avant tout: C'est pas (plus) la meilleure solution de générer de l'affichage côté serveur. La construction de ta table devrait se faire côté client. Ca te faciliterai aussi le binding d'une action au bouton.
 
Comment est-ce que tu appelles ce script ? Via une requête ajax ? Dans tous les cas, si tu ajoutes un input button (ou un <button> tout simplement), il faudra y associer une action.
 
Donc dans la boucle qui énumère les mécaniciens, tu ajoutes un tr/td avec un input button. Ensuite, il te faut y associer une action après l’exécution du script (côté client de préférence)
 
C'est pour ca qu'une meilleure solution serait:
 
- requête ajax de ton script php
- script php qui renvoie les informations des mécaniciens (sous forme de JSON p.ex)
- on success de la requête ajax, tu construis le tableau (en javascript, à l'ancienne ou bien en utilisant un template)
- pendant la construction, tu ajoutes le bouton et tu associes une action (une autre requête vers le serveur ?)


Perso, j'ai juste une objection sur cette nouvelle mode web de faire de l'affichage de contenu avec partout du ajax + JS côté client : l'accessibilité de ces sites aux personnes ayant un handicap visuel est très mauvis. En effet, souvent, le lecteur d'écran ne sait pas gérer le rafraichissement dynamique d'une page web. Du coup, pour les personnes utilisant ce type de logiciel (ex : NVDA qui est en GPL), la navigation devient une vraie galère (déjà que c'est pas simple pour elles!) :(
Rien qu'un simple champ avec autocomplétion, ça marche pas. Alors imaginez une pleine page avec un tableau paginé accessible seulement par la méthode "ajax".
 
JS (+ajax) est sensé améliorer l'ergonomie d'une site web mais normalement, le site doit pouvoir fonctionner sans JS, au moins pour les actions de base. Si le site n'est plus fonctionnel sans JS, alors on perd l'accessibilité et le but du JS, je trouver, perso :o
 
Pour info, ça représente 10 à 15% de la population française, cette population... Donc pas négligeable. Pour avoir fait l'expérience, c'est très instructif de fermer les yeux et d'essayer de surfer sur le site qu'on a conçu avec un logiciel comme NVDA. on se rend très vite compte de ce qui manque ou de ce qui n'est pas pratique ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2285063
rat de com​bat
attention rongeur méchant!
Posté le 12-07-2016 à 17:04:59  profilanswer
 

Je suis d'accord avec rufo: Le JS c'est pour des fonctionnalités avancées supplémentaires, le site doit pouvoir fonctionner sans. J'ai horreur de ça quand je dois d'abord activer le JS, recharger la page et parfois recommencer pour je ne sais combien de sources externes pour faire fonctionner un site, généralement je pars direct. C'est hélas le cas pour plus en plus de sites. :cry:


Message édité par rat de combat le 12-07-2016 à 17:05:40
mood
Publicité
Posté le 12-07-2016 à 17:04:59  profilanswer
 

n°2285064
gatsu35
Blablaté par Harko
Posté le 12-07-2016 à 20:04:44  profilanswer
 

Moumoule a écrit :


Un conseil avant tout: C'est pas (plus) la meilleure solution de générer de l'affichage côté serveur. La construction de ta table devrait se faire côté client. Ca te faciliterai aussi le binding d'une action au bouton.


Mauvais conseil.
On construit le HTML via le serveur et basta, ensuite il peut binder le click aussi facilement que s'il fabriquait le HTML coté client...
 
 

Moumoule a écrit :


 
C'est pour ca qu'une meilleure solution serait:
 
- requête ajax de ton script php
- script php qui renvoie les informations des mécaniciens (sous forme de JSON p.ex)
- on success de la requête ajax, tu construis le tableau (en javascript, à l'ancienne ou bien en utilisant un template)
- pendant la construction, tu ajoutes le bouton et tu associes une action (une autre requête vers le serveur ?)


[/quotemsg]
Ouais mais nan, il contruit son bordel en PHP et ensuite il pourra bien un seul event sur document (via jquery s'il veut) et il pourra targeter n'importe quel bouton, ensuite à lui de faire le code JS qui va bien pour récupérer une info sur un attribut ou autre et faire mumuse...

n°2285090
Moumoule
Posté le 13-07-2016 à 12:15:43  profilanswer
 

gatsu35 a écrit :


Mauvais conseil.
On construit le HTML via le serveur et basta, ensuite il peut binder le click aussi facilement que s'il fabriquait le HTML coté client...


 
Dépendant du cas de figure, du projet, des données à afficher, de l'envie de séparer au maximum la logique de la présentation, etc ... Avec node.js, typescript, angular js, je pense qu'on est quand même bien servi.
Oui tu peux bind un event sur un élément HTML par après. C'est beau en théorie, en pratique c'est un foutoir complet pour t'y retrouver après. Encore pire en équipe.
 
Après on peut discuter longtemps, la génération d'affichage côté serveur dispose aussi de nombreux avantages (gestion des droits, moins d'appel côté serveur). Maintenant perso, ça ne me m'amuse pas de construire ma page avec des echo "<table>" (même en fermant les balises php à chaque fois), tout comme ça ne m'amusait pas de définir des objets côté serveur et de devoir les redéfinir côté client. Et là, tu découvres typescript.
 
Après javascript activé ou pas, je ne sais pas quoi répondre. C'est très juste, mais je connais personne qui surfe de manière raisonnable sans javascript. Donc oui, mais non :-/

Message cité 1 fois
Message édité par Moumoule le 13-07-2016 à 12:21:00
n°2285095
gatsu35
Blablaté par Harko
Posté le 13-07-2016 à 12:54:15  profilanswer
 

Moumoule a écrit :


 
Dépendant du cas de figure, du projet, des données à afficher, de l'envie de séparer au maximum la logique de la présentation, etc ... Avec node.js, typescript, angular js, je pense qu'on est quand même bien servi.
Oui tu peux bind un event sur un élément HTML par après. C'est beau en théorie, en pratique c'est un foutoir complet pour t'y retrouver après. Encore pire en équipe.
 
Après on peut discuter longtemps, la génération d'affichage côté serveur dispose aussi de nombreux avantages (gestion des droits, moins d'appel côté serveur). Maintenant perso, ça ne me m'amuse pas de construire ma page avec des echo "<table>" (même en fermant les balises php à chaque fois), tout comme ça ne m'amusait pas de définir des objets côté serveur et de devoir les redéfinir côté client. Et là, tu découvres typescript.
 
Après javascript activé ou pas, je ne sais pas quoi répondre. C'est très juste, mais je connais personne qui surfe de manière raisonnable sans javascript. Donc oui, mais non :-/


Bah évidement il fait ça à coup d'écho <table> crades, on peut le faire avec des langages de templates hein :o.
Moi je surf de manière raisonnable sans JS, car j'en ai marre des merdes qui bouffe mon CPU et je l'active quand j'en ai vraiment besoin.

n°2285097
int2
Posté le 13-07-2016 à 13:00:16  profilanswer
 

Je vous remercie beaucoup tous pour vos aides. J'ai réussi à faire ce que je voulais.
 
Maintenant que j'ai des spécialistes devant moi je profite de ce post pour vous demander si vous ne pourriez pas m'aider une deuxième fois. Je le poste ci dessous mais j'ai créer une autre discussion sur cette demande aussi :s
 
Bonjour,  
 
J'ai un site avec un formulaire qui ajoute un utilisateur dans une base de données. Je voudrais savoir comment pourrais je afficher le pseudo de l'utilisateur connecté sur toutes les pages de mon site.  
 
J'ai trouvé 2 solutions :  
 
1 - Mettre le pseudo dans chaques url du site au moment de l'ajout de l'utilisateur à la base de donnée. Mais là d'une part j'arrive déjà pas à ajouter le pseudo utilisateur à l'url et d'autre part je ne vois pas comment je pourrais depuis l'url récupérer le pseudo qu'elle contient pour l'afficher sur le site. :s  
 
2 - Avec des $SESSION et du coup des echo $SESSION['prenom'] . Mais là encore je n'y parvient pas j'ai que des erreurs.  
 
N'auriez vous pas une méthode ou une autre solution ou quoi pour afficher le pseudo utilisateur sur toutes les pages de mon site web parce que je n'arrive pas à le récupérer. Ou sinon un script simple pour que je comprenne comment ça se passe.  
 
Beaucoup de remerciements d'avance

n°2285107
rufo
Pas me confondre avec Lycos!
Posté le 13-07-2016 à 14:15:48  profilanswer
 

$_SESSION n'est valable que pour la session de l'utilisateur connecté.
 
Je vois pas le rapport entre ajouter un user dans la BD et afficher le pseudo de l'utilisateur connecté ?
 
Tu veux afficher sur toutes les pages et tous les utilisateurs connectés le pseudo du dernier inscrit ? Ou tu veux juste afficher le pseudo de l'utilisateur connecté (mais dans ce cas, quel rapport avec le formulaire de création d'un user) ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Affichage bouton dans un tableau !

 

Sujets relatifs
[VBA] Problème avec tableauInterface Swing à partir d'un tableau 2D (jeu)
Java : Problème affichage à partir d'un dossier txtcliquer sur un bouton ecrit une date dans un ENTRY
Formulaire ACCESS: créer bouton commande d'ouverture fichier bddJqplot graphique et affichage sur multiple ligne
C : Envoi et retour d'un tableau dans des fonctions.Eviter les quotes quand j'insère du texte dans un tableau
Caption non centrée sur un bouton 
Plus de sujets relatifs à : Affichage bouton dans un tableau !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR