Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277

    Scrivere tra i tag HEAD con document.write

    Ciao.

    Chiedo l'aiuto ddel pubblico per un problema.

    Voglio - con JS e SENZA utilizzare i cookie, trovare la risoluzione dello schermo.
    Devo per fare usare un form con metodo POST; quindi la scelta è quella indicata sotto.

    A parte le poche righe di PHP che servono per vedere se in pratica l form è stato submitato o no, il js serve per scrivere un form che si autoinvia, i cui risultato (nella variabile $_POST) lo vado poi a leggere con php.

    Il problema è che sembra la document.write non funzioni, e non faccia un bel niente (leggendo la variabile $_POST essa è vuota). Riuscite a farmi capire perché?

    Grazie mille,



    codice:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>test</title>
    <?php
    if(!isset($_POST['submit']))
    {
    
    ?>
    <form name="resolution" action="index.php"method="POST">
    
    <script type="text/javascript">
    width = screen.width; 
    height = screen.height;
    document.write("<input type=hidden name="height" value=\"");
    document.write(height);
    document.write("\"</>");
    document.write("<input type=hidden name="width" value=");
    document.write(width);
    document.write("</>");
    
    </script>
    <input type = submit>
    </form>
    
    <script type="text/javascript">
    window.document.forms["resolution"].submit();
    </script>
    <?php
    }
    else 
    {
    print_r($_POST);
        
    
    // Code to be displayed if resolutoin is detected
         if(isset($_POST['width']) && isset($_POST['height'])) {
         $_SESSION['width'] =  $_POST['width'];         // Resolution  detected
         $_SESSION['height'] = $_POST['height'];         // Resolution  detected
         }
         else {
                   echo'Resolution not detected';
         }
    }
    </head>
    <body>
    </body>
    </html>

  2. #2
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    <input type = submit>

    name e value non sono impostati....

    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

  3. #3
    Utente di HTML.it L'avatar di oronze
    Registrato dal
    Jun 2001
    Messaggi
    3,543
    mamma mia...perchè fai questa cosa assurda? non puoi salvarla direttamente senza che ti invii un form inutilmente? poi in che senso no la lagge? Aggiungi un controllo in ogni if per capire in che if finisce e capire il perchè...

    if(isset($_POST['width']) && isset($_POST['height'])) {
    $_SESSION['width'] = $_POST['width']; // Resolution detected
    $_SESSION['height'] = $_POST['height']; // Resolution detected
    }
    non so se è perchè hai omesso quella parte di codice ma....hai creato come prima cosa la sessione? la creazione della sessione deve essere la prima riga di codice di un file (dopo <?php )

    No ai layout tabellari!

    Insulto libero: http://forum.html.it/forum/showthread.php?s=&postid=12524872#post12524872

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Ops, scusa, mi era rimasta quella linea di codice da un vecchio debug.

    Il codice NON FUNZIONANTE è questo, dove la submit è fatta via JS

    codice:
    <?php
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>test</title>
    <?php
    if(!isset($_POST['submit']))
    {
    
    ?>
    <form name="resolution" action="index.php"method="POST">
    
    <script type="text/javascript">
    width = screen.width; 
    height = screen.height;
    document.write("<input type=hidden name="height" value=\"");
    document.write(height);
    document.write("\"</>");
    document.write("<input type=hidden name="width" value=");
    document.write(width);
    document.write("</>");
    
    </script>
    
    <script type="text/javascript">
    window.document.forms["resolution"].submit();
    </script>
    
    </form>
    
    <?php
    }
    else 
    {
    echo'submittato';
    print_r($_POST);
        
    
    // Code to be displayed if resolutoin is detected
         if(isset($_POST['width']) && isset($_POST['height'])) {
         $_SESSION['width'] =  $_POST['width'];         // Resolution  detected
         $_SESSION['height'] = $_POST['height'];         // Resolution  detected
         }
         else {
                   echo'Resolution not detected';
         }
    }
    ?>
    </head>
    <body>
    </body>
    </html>

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    nessun aiuto?

  6. #6
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Originariamente inviato da davidl77
    nessun aiuto?
    Fretta?

    Quando esegui il submit il form non esiste ancora.... metti lo script dopo il tag </form>

    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
    Originariamente inviato da br1
    Fretta?

    Quando esegui il submit il form non esiste ancora.... metti lo script dopo il tag </form>

    ciao
    questo ti fa vedere i campi come vuoi tu:

    width = screen.width;
    height = screen.height;
    document.write("<input type=text name=\"height\" value=\""+width+"\"");
    document.write("<input type=text name=\"width\" value=\""+height+"\"");

    sostituisci tutto questo:
    width = screen.width;
    height = screen.height;
    document.write("<input type=hidden name="height" value=\"");
    document.write(height);
    document.write("\"</>");
    document.write("<input type=hidden name="width" value=");
    document.write(width);
    document.write("</>");

    con quello sopra e dovrebbe funzionare

    ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    Ciao!

    Grazie a tutti, ho risolto, questo il codice.

    Unico fastidio: al primo caricamento della pagina, mi visualizza una pagina bianca con due celle contenenti la risoluzione (in pratica mi stampa il form di cui poi fa l'autosubmit). Come posso nascondere questo effetto? Posso ad esempio far comparire una immagine (ad esempio il logo di chi crea il sito) al posto delle due delle di testo con width e height?


    codice:
    if(!isset($_SESSION))
    {
    
    ini_set ('session.use_cookies', 0);
    ini_set ('session.use_trans_sid', 1);
    
       session_start();
    }
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <title>titolo</title>
    <?php
    
          if(!isset($_POST['width']) && !isset($_POST['height']))
          {?>
          <form name="resolution" id = "resolution" action="index.php"method="post">
          <script type="text/javascript">
          width = screen.width;
          height = screen.height;
          document.write("<input type=text name=\"height\" id=\"height\" value=\""+width+"\"");
          document.write("<input type=text name=\"width\"  id=\"width\" value=\""+height+"\"");
          </script>
          </form>
          <script type="text/javascript">
          window.document.forms["resolution"].submit();
          </script>  
          <?php
          }
          else 
          { 
          // Code to be displayed if resolutoin is detected
               if(isset($_POST['width']) && isset($_POST['height'])) {
               $_SESSION['width'] =  $_POST['width'];         // Resolution  detected
               $_SESSION['height'] = $_POST['height'];         // Resolution  detected
               }
               else {
                         //echo'Resolution not detected';
               }
          }

  9. #9
    Moderatore di JavaScript L'avatar di br1
    Registrato dal
    Jul 1999
    Messaggi
    19,998
    Usa i CSS per nascondere il form.

    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    277
    ok...
    Al di là dei tecnicismi nell'uso del CSS qual è secondo te il metodo migliore per nasconderlo?

    Il sito è a sfondo nero, quindi ad es. testo nero su sfondo nero?

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.