images cliquables pour enregistrement DB

Eléphant du PHP | 345 Messages

16 févr. 2021, 20:08

Bonjour,
Script qui affiche tous les avatars présents dans un répertoire. Je voudrais que l'utilisateur puisse en choisir un (via 1 clic) puis que cela l'enregistre en Database. Est-ce possible ou dois-je me tourner vers une autre solution ?

Code : Tout sélectionner

<SCRIPT type='text/javascript'> function showimage() { if (!document.images) return document.images.predef_name.src='avatars/' + document.form1.predef.options[document.form1.predef.selectedIndex].value } </SCRIPT> <center><A HREF='#' onClick=\"window.open('liste_avatars.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=0, copyhistory=0, menuBar=0, width=900, height=600');return(false)\"></A> </center> <tr> <td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="radio" name="typeava" value="pred" checked> <select class="input" name="predef" onChange="showimage()">\n </select>&nbsp;&nbsp;<img src="avatars/defaut.png" name="predef_name" width="50" height="50"> </td> </tr> <td><center><input type="submit" name="Submit" value="Envoyer"></center></td> </tr></td> </table> </form> </center>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 févr. 2021, 09:32

Bonjour,

Quel est le problème ?
Où bloques-tu ?

En résumé voici le principe :
Pour afficher toutes les images d'un répertoire, tu peux faire un foreach() d'un glob()
Et tu poses un lien HTML sur chaque image qui renverra vers un script PHP avec en paramètre l'id ou le nom de l'image.
Ce script PHP ira ensuite associer dans la base de données l'utilisateur connecté avec l'image passée en paramètre.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 345 Messages

17 févr. 2021, 10:12

Oui, je vois à peu prêt, mais j'ai 300 images...

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

17 févr. 2021, 16:17

Salutations !

Tu peux soit proposer 300 vignettes sur une page pour permettre aux utilisateurs de choisir celle qui leur convient en cliquant dessus... mais ça fait peut être beaucoup...

Tu peux aussi proposer une pagination pour ne présenter que les 30 premières vignettes (les 30 premiers fichiers de ton répertoire), puis avec un lien "page suivante", rappeler ton script pour lui demander de charger les 30 images suivantes, etc.

Tu peux aussi proposer un "scroll infini", c'est à dire qu'au lieu de cliquer sur un lien "page suivante", le simple fait de scroller dans la page va déclencher le chargement des vignettes suivantes (il y a des librairies javascript pour faire ça relativement facilement :))

Enfin, si le nom de ton fichier le permet ou si ça peut être pertinent d'utiliser une base de données pour cela, tu pourrais mettre des mots clés dans le nom du fichier ou dans une table en base et proposer un moteur de recherche à l'utilisateur. Tu pourrais ainsi ne proposer qu'un nombre limité d'images qui correspondraient aux éléments cherchés par l'utilisateur.
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphant du PHP | 345 Messages

17 févr. 2021, 17:37

Je vais voir du coté du scroll en ce cas.