2010-11-07 1 views
0

J'utilise php pour générer dynamiquement une table d'informations à partir d'une base de données mysql. Chaque rangée de données a un bouton d'édition. Lorsque je clique sur modifier, je veux faire apparaître une iframe modale contenant un formulaire pour éditer les données. J'ai la table et le popup fonctionnant, cependant, je ne peux pas trouver un moyen d'envoyer l'id de la rangée de données de sorte que je puisse interroger la base de données et remplir automatiquement le formulaire.J'ai besoin d'aide pour transmettre des données à une fenêtre contextuelle modale iframe d'une table générée dynamiquement

J'ai obtenu le code pour le iframe popup d'ici:

Toute aide est appréciée, mais s'il vous plaît garder à l'esprit que je suis nouveau à js et ajax.

EDIT: désolé, mauvais lien. Le lien correct est http://deseloper.org/read/2009/10/jquery-simple-modal-window/

+0

Cette fenêtre modale n'utilise pas d'iframe. Avez-vous changé pour inclure un iframe? Pourriez-vous poster du code si c'est le cas? –

+0

Ajouter l'ID en tant que paramètre get à l'URL iframe? http://url.to/form.php?id=123 – BGerrissen

+0

Merci, ça l'a fait. C'était en fait la première chose que j'ai essayée, mais apparemment j'ai foiré quelque chose et j'ai supposé que le javascript ne transmettait pas cette information. Je serai sûr de vérifier mon travail plus à fond à l'avenir. Merci encore. – Flummoxed

Répondre

1

Cela dépend de l'endroit où les données de votre iFrame proviennent. Si le src de votre iFrame se présente sur un domaine complètement différent, vous ne pouvez rien faire à cause de la règle d'origine identique du navigateur: http://en.wikipedia.org/wiki/Same_origin_policy

S'il provient de la même origine/du même domaine, vous pouvez peut-être utiliser méthode mentionnée dans cette question: Pass value to iframe from a window

De ce que vous avez l'impression de faire, vous n'avez probablement pas besoin de l'iframe. Les fenêtres modales dans les pages Web sont créées avec une supercherie CSS et un positionnement absolu de sorte que tout ce qui est contenu dans le nœud de contenu du conteneur s'affiche dans la fenêtre. En utilisant du code Javascript, vous pouvez passer une fonction de rappel au constructeur de fenêtre modale qui est exécuté lorsque vous cliquez sur le bouton "OK"/"fermer"/"w/e".

Par exemple:

function createModalWindow(){ 
    var sendDataToServer = function() { /* do stuff */); 

    new modalWindow({ 
     onClose: sendDataToServer 
    }); 
} 

Ainsi, le code ci-dessus vous a la création d'une fonction anonyme et en passant comme le rappel qui est appelée lorsque modalWindow.onClose est appelé. De plus, si vous débutez en javascript, la méthode ci-dessus fonctionne parce que les fonctions sont essentiellement traitées comme des objets dans le JS, de sorte qu'elles peuvent être transmises comme paramètres à d'autres fonctions.

Questions connexes