Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    10

    Fissare parametri passati con una querystring

    Ciao a tutti,
    sto realizzando un questionario via Javascript e fin qui tutto bene.
    Faccio in modo che i risultati del questionario siano trasferiti via querystring ad un'altra pagina che si "preoccupa" di formattarli e presentarli in un modo adeguato.
    Ora, il punto è che se io salvo la pagina come documento html, ovviamente, perde tutti i dati.

    Esiste un modo per "fissare" i parametri che io passo e renderli parte integrante della pagina?

    Grazie a tutti per l'aiuto...

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Mi pare di capire che tu prima carichi la pagina, poi ci scrivi dentro ai campi i tuoi dati.

    Dovresti usare degli <span> al posto dei campi, e scriverci usando:
    document.getElementById('ID_SPAN').innerHTML = ...

    Non sono pero` sicuro che questo funzioni in tutti i browser per i tuoi scopi.

    Naturalmente i vari id 'ID-SPAN' (tutti diversi!!) prendono il posto dei name dei campi.
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    10
    In effetti, io prima estraggo dalla querystring tutte i parametri e li salvo in variabili che poi "stampo" a video con dei banali document.write nei punti in cui mi servono.

    Questo semplifica molto il codice mentre la tua soluzione, che credo anche più elegante, mi costringerebbe se ho capito bene a lanciare una funziona con <BODY onLoad...>.

    Giusto?

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Allora non ho capito cosa facevi.

    Se usi document.write, puoi usarlo ancora; va meglio dell'innerHTML. Posta un pezzetto del tuo codice (basta uno o due campi) che te lo modifico per eliminare il campo ed usare invece uno <span>

    Tieni presente che document.write si puo` usare solo in fase di costruzione della pagina (tranne in qualche browser non conforme).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    10
    La pagina utilizza una tabella.
    Ti riporto una riga tanto sono più o meno tutte uguali.

    codice:
    <tr>
    <td class="Positivo">Di +</td><td class="Positivo"><SCRIPT LANGUAGE="JavaScript">document.write(DiP)</SCRIPT></td>
    <td></td>
    <td class="Negativo">Di -</td>
    <td class="Negativo"><SCRIPT LANGUAGE="JavaScript">document.write(DiM)</SCRIPT></td>
    <td></td>
    <td class="Sottrazione">36 - Di -</td>
    <td class="Sottrazione"><SCRIPT LANGUAGE="JavaScript">document.write(36 - DiM)</SCRIPT></td>
    </tr>
    Come vedi scrivo direttamente il valore della variabile perchè mi viene più semplice che non creare la tabella con qualche procedura iterativa o addirittura con il DOM.

    Infine, tieni presente che questa pagina verrà visualizzata sicuramente SOLO con IE (quale versione non so ma certamente recente, diciamo 5+).

    Grazie di tutto.

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Quando salvi la pagina viene registrato il sorgente... ma non i parametri che eventualmente la pagina riceve a per mezzo dei quali cambia il suo aspetto.

    Per realizzare quello che chiedi e' indispensabile agire con opportuni programmi lato server.

    ciao
    Il guaio per i poveri computers e' che sono gli uomini a comandarli.

    Attenzione ai titoli delle discussioni: (ri)leggete il regolamento
    Consultate la discussione in rilievo: script / discussioni utili
    Usate la funzione di Ricerca del Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Quel codice dovrebbe andare bene.

    Ma dovresti fare uno sforzo per far capire il contesto e le condizioni al contorno.

    Tu hai scritto: "Ora, il punto è che se io salvo la pagina come documento html, ovviamente, perde tutti i dati."
    Non mi risulta che una pagina generata come hai scritto dovrebbe perdere tutti i dati.

    Ma la pagina viene generata da un'altra pagina? oppure viene generata da un JS contenuto all'interno della pagina?
    E come passi i parametri? tramite querystring? In tal caso ti basterebbe salvare la stringa della location (quindi salvarla nei bookmarks).
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    10
    Grazie ad entrambi per le vostre risposte.

    Per rispondere a Br1: effettivamente avevo pensato anch'io che la cosa si potesse fare solo lato server. E' per questo che volevo sapere se esisteva un modo per creare la pagina "fissando" i dati in html e non come javascript.

    Credo a questo punto che non sia possibile in alcun modo.

    PS: per azioni lato server di cosa parli nello specifico?

    Per rispondere a Mich_: la pagina riceve da un'altra pagina, nella quale vi è il vero e proprio questionario, i risultati delle risposte tramite una querystring. Ne preleva i parametri, li trasforma in variabili e li visualizza grazie al codice che ti ho scritto.
    Come dici tu a questo punto l'unico modo, credo, per salvare i parametri è salvare la querystring e quindi salvare la pagina nei bookmark. Io questo lo vorrei evitare perchè chi si troverà ad usare gestire i risultati del questionario non è così sgamato da organizzare i bookmark in modo coerente e comunque è un procedimento macchinoso.

    Credo non ci sia soluzione. A meno che qualcuno di voi non faccia il miracolo

    Grazie ad entrambi

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Non credo che NOI possiamo "fare il miracolo", ma lo puoi fare TU.

    Basta che la pagina non venga "montata" da se stessa, ma da una pagina diversa.

    Cioe` la pagina che deve "montare" il tutto non viene poi visualizzata, semplicemente crea una stringa che contiene tutta la pagina che devi visualizzare. Alla fien ti basta un document.write().

    Esempio:
    codice:
    <body>
    <script ....>
    var nuovapag = '<ht'+'ml>\n<he'+'ad> ...';
    ....
    nuovapag += '<tr>\n';
    nuovapag += '<td class="Positivo">Di +</td>\n';
    nuovapag += '<td class="Positivo">' +DiP+'</td>\n';
    nuovapag += '<td>&amp;nbsp;</td>\n';
    nuovapag += '<td class="Negativo">Di -</td>\n';
    nuovapag += '<td class="Negativo">'+DiM+'</td>\n';
    nuovapag += '<td>&amp;nbsp;</td>\n';
    nuovapag += '<td class="Sottrazione">36 - Di -</td>\n';
    nuovapag += '<td class="Sottrazione">'+String(36 - DiM)+'</td>\n';
    nuovapag += '</tr>\n';
    ....
    
    nuovapag += '</bo'+'dy>\n</ht'+'ml>\n';
    
    document.write(nuovapag);
    </script>
    <div>
    
    attendere prego</p></div>
    </body>
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    10
    Ho provato come mi hai detto tu (peraltro idea geniale!) solo che non capisco se una volta costruita la pagina nella variabile "nuovapag" la devo passare nuovamente ad un'altra pagina oppure visualizzarla come dicevi tu con il document.write.

    In questo secondo caso non mi funziona... La pagina è questa:

    codice:
     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD>
    <TITLE>« « Esito del Test BFQ » »</TITLE>
    <SCRIPT LANGUAGE="JavaScript" src="Script.js"></SCRIPT>
    <SCRIPT LANGUAGE="JavaScript">
    
    ....
    qui c'è lo script per recupare i parametri della querystring
    ....
    
    var nuovapag = '<!DOCTY'+'PE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
    nuovapag += '<ht'+'ml>\n<he'+'ad>';
    nuovapag += '<TITLE>« « Esito del Test » »</TITLE>';
    ....
    nuovapag += '</bo'+'dy>\n</ht'+'ml>\n';
    
    
    </SCRIPT>
    <link rel="stylesheet" type="text/css" href="CSS.css"/>
    </HEAD>
    <BODY>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    document.write(nuovapag);
    
    //-->
    </SCRIPT>
    </BODY>
    </HTML>

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.