Bonjour à tous,
Petit nouveau ici, et de surcroît débutant dans le monde du développement web; j'ai un petit souci de mise en œuvre sur un site que je développe à mes heures perdues smile
Je vous accorde que le mélange des 3 langages (HTML, JS et PHP) me perturbe légèrement, surtout les principes d’exécution Client, Serveur ... (mais ça commence à bien rentrer smile )
Allez j'arrête de tourner autour du pôt et je vous remercie par avance si vous lisez jusqu'au bout la description de ma problématique.
Voici comment est conçu mon site (en PHP) :
1. Une fenêtre dans laquelle est restituée un tableau (4 colonnes, 10 lignes) à l'aide d'une requête SQL, les données étant en base.
2. L'utilisateur doit pouvoir modifier ces données et les sauvegarder en base.
3. J'ai donc crée un bouton permettant d'ouvrir une popup modale (c'est un choix mûrement réfléchi) qui affiche le même tableau mais avec des input type "TEXT"
Les infos sont passées de la fenêtre mère à la fenêtre fille par une mise en session du tableau
4. Mon problème est que je ne sais pas trop comment renvoyer à la fenêtre mère les données (je ne me pose pas la question de savoir si les données ont été modifiées)
J'ai quelques pistes (window.returnValue, champs hidden, ....) mais je suis sur qu'il doit y avoir plus simple, plus propre et surtout plus astucieux.
Voici donc concrètement comment j'ai fait.
Fenêtre mère
1. requete SQL -> j'enrichis ma variable php $tab[..][..]
2. j'affiche mes 40 valeurs de $tab
3. je stocke $tab en session --> $_SESSION['tab'] = $tab; dans l'idée de récupérer les données côté popup
4. mon bouton ouvre la popup modale, et je lance une requete en session --> $tab = $_SESSION['tab'];
5. et là je bloque ! comment renvoyer les valeurs (modifiée ou non, peu importe) à la fenêtre mère ? tout en fermant la fenêtre fille ?
quelques idées :
mettre sur la fenêtre mère, 40 champs hidden (4 col x 10 lig) dans un form, et à l'aide du bout de code JS suivant appliqué sur mon bouton validé de la popup je peux récupérer le tout :
une boucle i,j (col/ligne)
et ensuite dans ma fenêtre mère je lance une requête POST pour récupérer les données et écraser le tableau $tab
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 tab[ i][j] = window.document.getElementById(i+'_'+j).value; window.returnvalue = tab window.close();
Mais ça me parait un peu lourd et un peu tiré par les cheveux non ?
Donc voilà, que me conseilleriez-vous ? une méthode toute adaptée ?
Merci d'avance pour vos réponses
Partager