Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    passagio parametri tra frame

    ciao a tutti!

    da poche settimane mi sono affacciato al mondo html & javascript per lavoro ed avrei bisogno di un piccolo aiutino.

    io ho una pagina web con 2 frame: "inserimento.shtml" e "indirizzi.shtml"; nella pagina "inserimento.shtml" ho una form con due input: "procedura" e "offset". io vorrei che quando premo il pulsante "submit" della form (dove ho posto action="test.cgi" method="GET") i valori non solo vengano inviati al server, ma vengano passati anche alla pagina "indirizzi.shtml".

    come posso fare?

    grazie

  2. #2
    Utente di HTML.it L'avatar di carlomarx
    Registrato dal
    Oct 2009
    Messaggi
    1,669
    Non ti conviene passare dal prelievo dei valori dall'url, quella è una procedura utile per quando si va naviga avanti e indietro tra le pagine, non per quando si hanno più pagine aperte contemporaneamente in diversi frames. In questo caso hai la possibilità di leggere quello che accade "in diretta". Prova ad aggiungere un evento onsubmit al tuo form, tipo qualcosa del genere:

    codice:
    <form name="tuoForm" method="get" onsubmit="tuoFrame.sentValues = {}; for (var iCtrl, iId = 0, aCtrls = this.elements; iId < aCtrls.length; iId++) { if ((iCtrl = aCtrls[iId]).name) { tuoFrame.sentValues[iCtrl.name] = iCtrl.value; } } return true;">
    Sostituisci tuoFrame (in verde) con il richiamo all'oggetto window della pagina indirizzi.shtml. In questo modo ti ritroverai magicamente all'interno del frame indirizzi.shtml un oggetto globale di nome sentValues contenente tutti i campi compilati.

  3. #3
    grazie mille!!

    proverò a fare così

    m(_ _)m

  4. #4
    ciao a tutti!

    ho ancora bisogno del vostro prezioso aiuto. quello che sto cercando di fare è questo:

    nel frame "inserimento" ho una tabella in cui visualizzo i valori di un array (o meglio, di alcune locazioni di memoria) ed una form in cui inserisco (tra le altre cose) un valore di offset. la form è così fatta:

    <form action="test.cgi" method="GET" name="invia" onsubmit="AggiornaAddr()">
    ....altre cose.....
    <input type="text" style="font-size: 12pt" name="offset" id="offset" />
    ....altre cose.....
    <input type="submit" value="Invia" style="font-size: 12pt" />

    nel frame "indirizzi" invece ho una tabella in cui visualizzo gli indirizzi corrispondenti ai valori mostrati nel tabella dell'altro frame.

    quello che vorrei fare io è che al submit il valore offset (presente nel frame "inserimento") venga sommato ai vari campi della tabella nel frame "indirizzo".

    per fare ciò ho scritto la seguente funzione "AggiornaAddr" che viene chiamata al submit:
    function AggiornaAddr(){
    var IndirizzoVecchio;
    var IndirizzoNuovo;
    var off=document.invia.offset.value
    for (i=0;i<16;i++){
    IndirizzoVecchio=parent.indirizzi.document.getElem entById("addr"+i).innerHTML; //le celle della tabella nel frame "indirizzi" hanno i vari Id "addr0", "addr1"...."addr15"
    IndirizzoNuovo=parseInt(IndirizzoVecchio)+off; //i valori delle varie celle sono dei valori esadecimali convertiti in stringa; con la parseInt trasformo le stringe in valori in base 10
    parent.indirizzi.document.getElementById("addr"+i) .innerHTML="0x"+IndirizzoNuovo.toString(16).toUppe rCase();// aggiorno l'indirizzo, rispettando il formato di valore esadecimale in stringa
    }
    }


    all'invio dei dati, i valori del frame "indirizzi" non vengono aggiornati correttamente.

    ad esempio se "offset"=2 i valori che ottengo sono i seguenti:

    addro: valore inziale "0x0" valore finale visualizzato 2 (invece che 0x2)
    addr1: valore inziale "0x10" valore finale visualizzato 162 (invece che 0x12)
    ..........
    addr15: valore iniziale"0xF0" valore finale visualizzato 2402 (invece che 0xF2)

    qualcuno sa dirmi dove ho sbagliato?

    grazie anticipatamente

  5. #5
    ho realizzato che i valori visualizzati sono la concatenazione dei valori decimali invece che la somma convertita in esadecimale.

    ad esempio addr15=0xF0 in decimale è 240; se aggiungo offset=2 invece di ottenere 0xF2 mi viene visualizzato 2402


  6. #6
    ho risolto!!!
    con l'istruzione
    var off=document.invia.offset.value;

    nella variabile off viene messa una stringa e non un numero. per questo la linea

    IndirizzoNuovo=parseInt(IndirizzoVecchio)+off;

    mi faceva una concatenazione di stringhe piuttosto che una somma di numeri.

    l'istruzione corretta è:

    var off=parseInt(document.invia.offset.value);



    scusate ancora il disturbo. se gli admin ritengono che i miei post possano essere di qualche utilità li lascino, altrimenti li cancellino pure

    m(_ _)m

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.