[javascript] prob popup + frame

Fermé
Phil - 22 juin 2004 à 18:20
 vulamicy - 4 déc. 2007 à 08:33
Bonjour,

J'ouvre une popup grace à une frame de ma page prinicpale, grace à cette popup je renvoie les resultats d'un formulaire.

Ce formulaire devrait changer les données contenues ds une 2ième frame de ma page prinicale, il n'y a aucun chagement de cette frame

code du form :

<form action="index_bd.php" target="centre" method="post" name="recherche">

où index_bd est ma page principale et centre la frame à modifier

Rq : si je change index_bd par la page que contient la frame centre (liste.php) tout se passe bien, mais dès que j'essaie avec les frames plus rien

Si vous avez des idées, merci d'avance
A voir également:

2 réponses

Utilisateur anonyme
24 juin 2004 à 10:06
La solution est ci-dessous.

Le plus simple est d'appeler depuis ta popup une fonction javascript de la fenêtre qui a ouvert cette popup en lui passant les arguments nécessaires.

Dans cette fonction, tu fermes la popup et tu vas modifier les valeurs des champs.

Tu trouveras ci-dessous 4 fichiers HTML de démo que tu dois copier dans le même répertoire.


Fichier "index.html"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<frameset name ="main"rows="25%,*">
	<frame name="topFrame" src="top.html" />
	<frame name="bottomFrame" src="bottom.html" />	
</frameset>

</body>
</html>



Fichier "top.html"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Top frame</title>

	<script language="javascript" type="text/javascript">
		var w;
		
		function openPopup(){
			w = window.open('PopupCCM.html','','status=yes, width=320, height=140');
		}
		
		function update(field_1_value, field_2_value){
			w.close();
			top.bottomFrame.document.getElementsByName("welcome")[0].value=field_1_value;
			top.bottomFrame.document.getElementsByName("goodbye")[0].value=field_2_value;			
		}
	</script>			
</head>

<body>
	<span onclick="openPopup();" style="background-color: #8888ff; color: eeeeee; border: #4444ff 1 solid; font-family: Arial, Times; font-weight: bold; padding: 4 4 4 4; cursor: hand;">
		Test
	</span>

</body>
</html>



Fichier "bottom.html"
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>Bottom Frame</title>
</head>

<body>
	<h3>Messages d'accueil:</h3>
	<br>
	<form>
		<table>
			<tr>
				<td>Message de bienvenue:</td>
				<td><input type="text" disabled name="welcome" /></td>
			</tr>
			<tr>
				<td>Message d'au revoir:</td>
				<td><input type="text" disabled name="goodbye" /></td>				
			</tr>
	</form>
</body>
</html>



Fichier "PopupCCM.html"

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
	<title>PopupCCM</title>

	<script language="javascript" type="text/javascript">
		function update(){
			select_1 = document.getElementsByName("sel_1")[0];
			field_1_value =select_1.options[select_1.selectedIndex].value;

			select_2 = document.getElementsByName("sel_2")[0];
			field_2_value =select_2.options[select_2.selectedIndex].value;			
			window.opener.update(field_1_value, field_2_value);
		}
	</script>			
</head>

<body>
	Valeur à insérer dans le champ 1:
	<select id="sel_1" name="sel_1">
		<option value="Coucou" >Coucou
		<option value"Hello" >Hello
		<option value="Bonjour" >Bonjour
	</select>
	<p/>
	Valeur à insérer dans le champ 2:
	<select id="sel_2">
		<option value="Au revoir" >Au revoir
		<option value"Bye bye!" >Bye bye!
		<option value="Ciao" >Ciao!
	</select>
	<p/>
	<button onclick="update();">Mettre à jour</button>

</body>
</html>



;-)
3
Merci pour ta réponse bien détaillée (si toutes les réponses étaient comme celle-ci...)
Je me suis plongé dans toutes les focntions javascript que tu avais utilisé et j'ai compris le fonctionnement de la relation popup frame, en réutilisant partiellement ton code ;-)

Encore merci
0
cannot return value in browse firefox?????????
0