Bonjour à tous,
Petit nouveau ici, et de surcroit débutant dans le monde du développement web; j'ai un petit souci de mise en oeuvre sur un site que je développe à mes heures perdues
Je vous accorde que le mélange des 3 langages (HTML, JS et PHP) me perturbe légèrement, surtout les principes d'éxecution Client, Serveur ... (mais ca commence à bien rentrer
)
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 fenetre 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 murement 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 concretement comment j'ai fait.
Fenetre 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)
tab[ i][j] = window.document.getElementById(i+'_'+j).value;
window.returnvalue = tab
window.close();
et ensuite dans ma fenetre mère je lance une requête POST pour récupérer les données et écraser le tableau $tab
Mais ca 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
Modifié par Ultraviolet (26 Jan 2011 - 23:43)
Petit nouveau ici, et de surcroit débutant dans le monde du développement web; j'ai un petit souci de mise en oeuvre sur un site que je développe à mes heures perdues

Je vous accorde que le mélange des 3 langages (HTML, JS et PHP) me perturbe légèrement, surtout les principes d'éxecution Client, Serveur ... (mais ca commence à bien rentrer

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 fenetre 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 murement 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 concretement comment j'ai fait.
Fenetre 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)
tab[ i][j] = window.document.getElementById(i+'_'+j).value;
window.returnvalue = tab
window.close();
et ensuite dans ma fenetre mère je lance une requête POST pour récupérer les données et écraser le tableau $tab
Mais ca 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
Modifié par Ultraviolet (26 Jan 2011 - 23:43)