• User

    passare parametri tramite form

    Salve, vorrei chiedere se qualcuno mi può aiutare in questo mio piccolo problemino con javascript...

    Ho bisogno di inviare dei parametri presenti nell'url tramite form. Ho una funzione, objQueryString(), che mi recupera questi parametri (id,cat,rif). Questa funzione è all'interno di un'altra funzione, generateLink(), che richiamo dal mio form.

    <form name="myform" method="post" onSubmit="generateLink();"> (...) </form>

    codice javascript:
    function generateLink() {
    function objQueryString(qs){
    dic = new Array()
    if(!qs) qs = location.search
    qs = qs.replace(/?/,'')
    aQs = qs.split('&')
    txt = ''
    for(i=0;i<aQs.length;i++){
    aPV = aQs*.split('=')
    dic[aPV[0]]=aPV[1]
    }
    return dic
    }
    //richiamo la funzione per recuperare i parametri
    qs = objQueryString()

    //ricompongo la parte di link che contiene i parametri (dove qs è il valore del mio parametro)
    for(x in qs)
    var urlString = x+'='+qs[x]+'&'+'y=commenti';
    //imposto come azione del form il mio link
    document.myform.action='miosito.it/cartella/file.php?'+urlString;
    document.myform.submit();
    }
    Il problema sta nell'ultima parte del codice:

    for(x in qs)
    var urlString = x+'='+qs[x]+'&'+'y=commenti';

    il link che ottengo infatti manca dei primi due parametri, evidentemente perché mi registra solo l'ultimo.

    In breve dovrei ottenere qualcosa così:
    miosito.it/cartella/file.php?id=mioid&cat=miacat&rif=miorif&y=commenti

    invece ottengo questo:
    miosito.it/cartella/file.php?rif=miorif&y=commenti

    C'è qualcuno in grado di aiutarmi? :bho:


  • User

    ok dopo ore e ore ci sono arrivato: senza utilizzare il costrutto FOR IN, dalla funzione objQueryString() ho recuperato i miei parametri, infatti ad esempio aQs[0] corrsiponde a id=mioid, aQs[1] a cat=miacat, ecc.
    Quindi dovevo solo attribuire una variabile a questi dati, così funziona:

    qs = objQueryString()

    var id = aQs[0];
    var cat = aQs[1];
    var rif = aQs[2];
    var urlString = id+'&'+cat+'&'+rif;

    document.myform.action='miosito.it/cartella/file.php?'+urlString+'&y=commenti';
    document.myform.submit();