Ciao a tutti,
spiego in poche parole quello che sto cercando di fare e poi vi posto il codice.

Io ho una form con all'interno una select che con la proprietà onchange - open apre un pop up con all'interno un'altra form.
Completata questo seconda form prendo un dato inserito in questa seconda finestra e lo faccio comparire in un campo input adiacente alla mia select nella pagina padre (la pop up viene chiusa).
Ora se io dovessi fare questa cosa solo una volta non avrei problemi ricerco per id il mio input e lo faccio compilare (l'ho gia fatto e funziona).
Il fatto è che io di queste select, tramite un bottone, ne posso aggiungere quante me ne servono e tutte aprono il pop up con la form che alla chiusura deve restituirmi nella pagina padre, all'input adiacente alla select, il dato che io voglio.

Spiegando in modo più esplicito nel pagina padre potrei avere da una a n di queste righe:

select id=c1 input id=d1
select id=c2 input id=d2
......
select id=cn input id=dn

le select cn mi aprono il pop up e gli input dn devono essere riempiti dal pop up.
Il mio problema è che non riesco a capire che cosa passare alla funzione window.opener.document.getElementsById('d?').value ='valore';

Io ho pensato a questo ciclo nella pagina pop up che però non funziona:

for(var i=1; window.opener.document.getElementsById('d'+i).valu e!=''; i++);

window.opener.document.getElementsById('d'+i).valu e='valore';

Praticamente passo i vari id d1, d2, d3, fin quando non trovo quello vuoto, che cioè ancora non è stato completato, e poi gli do il valore però questo ciclo for non funziona.
Forse lo scrivo in maniera sbagliata o bisogna fare un giro più lungo per fare quello che voglio fare.

Per caso qualcuno ha qualche idea su come si possa fare questa cosa?
Spero di essermi spiegata abbastanza bene.

Grazie!