Scusa del ritardo, ma... altri impegni
Allora, nell'esempio che ho, la pagina A ha una lista di nomi, e un link che apre un popup.
Il popup inserisce nomi nel database e aggiorna la lista di A
In A scrivo una procedura, popup_callbck(v) che si occupa, quando invocata, di aggiornare la lista. Il parametro v ricevuto è un vettore del tipo:
[ ["value", "text"], ["value", "text"], ["value", "text"] ]
la pagina è:
codice:
<%@ Page Language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Pagina senza titolo</title>
<script language="javascript" type="text/javascript">
// <!CDATA[
var w_popup = null;
function apri_popup()
{
w_popup = window.open('popup.aspx','popup','width=500px,height=500px,top=100px,left=400px');
}
//--------------------------------------------------------
// mi aspetto di ricevere un vettore del tipo
// [ ["value", "text"], ["value", "text"], ["value", "text"] ]
//--------------------------------------------------------
function popup_callbck(v)
{
//cancello la lista
$("Select1").options.length = 0;
//creo la lista
for(var i = 0; i < v.length; i++)
{
lista_push($("Select1"), v[i][1], v[i][0]);
}
}
//al posto di mettere document.getElementById("div1"), mettere $("div1")
//da prototype.js
function $()
{
var elements = new Array();
for (var i = 0; i < arguments.length; i++)
{
var element = arguments[i];
if (typeof element == 'string')
element = document.getElementById(element);
if (arguments.length == 1)
return element;
elements.push(element);
}
return elements;
}
function lista_push(lista, testo, valore)
{
lista.options[lista.options.length] = new Option(testo, valore);
}
// ]]>
</script>
</head>
<body>
Apri popup</p>
<select id="Select1" style="width: 216px; height: 314px" size="10"></select>
</body>
</html>
<script runat="server">
</script>
Il popup, quando aggiorna il database, nell'evento load può invocare quella funzione con qualcosa del genere:
if(dati && opener && opener.popup_callbck)
opener.popup_callbck(dati);
la variabile dati deve contenere il vettore di prima; come farlo dipende dal server, php, asp o altro