Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: recupero dati da popup

  1. #1

    recupero dati da popup

    ciao gente

    Ho una pagina contenente un form, dalla quale viene aperta una popup che contiene delle email da selezionare tramite i checkbox. Una volta selezionate le email, chiudo la finestra e torno al form della mia pagina. Come faccio a portare alla pagina "madre" le email selezionate per poi inviare il tutto ad un'altra pagina per registrare i dati?


    spero di essere stato chiaro

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    L'argomento e` gia` stato affrontato piu` volte.

    Se non riesci a trovare, dovresti specificare:
    - con che bottone o comando chiudi la popup;
    - dove sono salvate le stringhe da copiare;
    - dove vuoi copiare le stringhe (in un unico campo o in piu` campi?);

    la struttura del comando e` :
    window.opener.document.NOMEFORMDEST.NOMECAMPODEST. value = NOMEFORM.NOMECAMPO.value;

    ma occore controllare se e` checked, ed inserire il tutto in un loop.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    ho fatto delle ricerche ma ho trovato poco


    quando devo passare dei dati come in questo caso, invece di dare nomi del tipo "email1 - email2 etc" io imposto a tutti i checkbox questo nome: email[] in modo che quando vado a recuperare i dati da php mi ritrovo un array che contiene il valore dei campi checkati (risparmiando ovviamente un enormità di tempo).

    Volendo ora tornare i dati dalla popup, pensavo di usare lo stesso sistema, però non funziona. Questo è la form che sta nella popup:

    Codice PHP:
    <form onSubmit="window.opener.selectmail.idcategmail.value=id_categ[];" name="email" method="post">
    <?
    $result 
    = @mssql_query("SELECT id,email FROM newsletter_mail ORDER BY email ASC");
    while (
    $row = @mssql_fetch_assoc($result))
    {
    ?><input type="checkbox" name="id_categ[]" value="<?=$row["id"]?>"> <?=$row["email"]?>
    <?
    }
    ?>
    <input type="submit" name="chiudi" value="chiudi">
    </form>
    così facendo non mi torna nulla. Se invece passo una stringa (quindi al posto di id_categ[] scrivo 'ciao') nella pagina madre ho appunto "ciao" (e anche una volta che clicco su invio dalla pagina madre mi ritrovo ciao nella pagina in cui devo gestire le e-mail)



    - con che bottone o comando chiudi la popup;
    non ha importanza, l'importante che una volta cliccato sul pulsante si chiude la popup

    - dove sono salvate le stringhe da copiare;
    questa non l'ho capita

    - dove vuoi copiare le stringhe (in un unico campo o in piu` campi?);
    in un unico campo di tipo hidden (non si devono vedere nella pagina madre, non serve. L'imoprtante è che quando passo all'altra pagina posso elaborare i dati

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ciao yasso,
    passa una stringa, assemblandola nella popup con un pipe come separatore, tanto se la passi in un campo hidden otterrai sempre una stringa

    occhio che un campo hidden ha un numero massimo di caratteri oltre il quale taglia la stringa (256?),
    se prevedi di sforare questo limite conviene portare dietro una textarea nascosta

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ok ora si puo` cominciare a lavorare sullo script.

    Non puoi fare tutto in una istruzione: devi montare una stringa.


    Quindi <form onsubmit="elabora(this);" ...>

    Poi la funzione elabora() sara` di questo tipo:
    codice:
    function elabora(ff) {
      var cb = ff.elements['id_categ[]'];
      var str = '';
      for(var i=0; i<cb.length; i++) {
        if(cb[i].checked) str += cb[i].value+'|';
      }
      window.opener.selectmail.idcategmail.value = str;
    }
    Nota: questo script presuppone che i campi con name="id_categ[]" siano almeno due.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    allora io ho provato questo:

    codice:
    function gestEmail(mail){
    	totmail = "";
    	for(i=0;i<mail;i++){
    		if(document.email["id_categ"+i].checked){
    			totmail = totmail + document.email["id_categ"+i].value + "|";
    		}
    	}
    	window.opener.document.selectmail.idcategmail.value=totmail;
    	window.close();
    }
    e questo è il pulsante:

    Codice PHP:
    <input type="button" onClick="javascript:gestEmail(<?=$i?>);" name="chiudi" value="chiudi">
    in pratica passo il valore totale dei checkbox con $i

    questo invece è il checkbox:
    Codice PHP:
    <input type="checkbox" name="id_categ<?=$i?>" value="<?=$row["id"]?>"> <?=$row["email"]?>
    lo script mi restituisce giustamente solo gli id delle email selezionate in totmail ma il window.opener.... non funziona e la popup non si chiude :master:

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  7. #7
    ops... scusa Mich_ ma avevo già cliccato su rispondi poi mi sono occupato di altre cose e ho risposto solo ora non accorgendomi della tua risposta

    ora provo

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Ma perche` aggiungi, togli, mescoli, ...
    Hai fatto un bel minestrone.

    Il numero di pulsanti lo puo` ricavare da solo il JS, invece l'oggetto da verificare glie lo devi dire:
    codice:
    function gestEmail(){
    	var totmail = "";
    	var cb = document.NOMEFORM.email["id_categ[]"];
    	for(i=0;i<cb.length;i++){
    		if(cb[i].checked){
    			totmail += cb[i].value + "|";
    		}
    	}
    	window.opener.document.selectmail.idcategmail.value=totmail;
    	window.close();
    }
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  9. #9
    Originariamente inviato da Mich_
    Ma perche` aggiungi, togli, mescoli, ...
    Hai fatto un bel minestrone.



    cmq ho fatto come hai detto 2 post sopra:

    codice:
    function elabora(ff) {
      var cb = ff.elements['id_categ[]'];
      var str = '';
      for(var i=0; i<cb.length; i++) {
        if(cb[i].checked) str += cb[i].value+'|';
      }
      window.opener.document.selectmail.idcategmail.value = str;
    }
    funziona alla perfezione Grazie

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  10. #10
    ah, xinod mi parlava di textarea nascosta, come si fa? :master:

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.