Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    102

    apertura nuova pagina in base a condizione

    Ciao a tutti,
    la domanda sembrerà sicuramente stupida (e magari lo è!) ma sono alle prime armi...
    Vorrei sapere se esiste una funzione che mi permette di caricare automaticamente una nuova pagina nello stesso target (self) della pagina corrente, in base ad una condizione specifica. Facendo un esempio:
    codice:
    if($this == $that){ 
        //apri pagina A.html
    } else { 
        //apri pagina B.html 
    }
    Grazie!!!

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    di solito si usa una pagina contenitore in questi casi, del tipo : la pagina index.php sarà cosi formata:
    codice:
    <?php
    if($this==$that) {
      include("paginadaincludere"); 
    } else {
      include("altrapagina");
    }
    in questo modo dentro la pagina index.php puoi anche mettere del codice comune alle 2 pagine (tipo testata, footer).

    Se invece vuoi proprio fare una redirezione allora devi usare

    codice:
    if($this==$that) {
      header("location:pagina"); 
    } else {
      header("location:altrapagina");
    }
    in questo caso però non puoi scrivere nulla sulla pagina, header può essere usato solo in questo caso.

    ciao

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    102
    Grazie mille dell'esempio!!! Guarderò di farlo fruttare al meglio!!!
    Ciao!

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    56

    pop up da form

    Ciao, vi ringrazio perché mi avete chiarito uno dei miei dubbi.
    Anche io sono all’inizio e mi è sorto un altro grattacapo.

    Potrei domandarvi, come si può fare per aprire una finestra nuova (un pop up) a partire di un form con all’interno due menu a discesa caricando una pagina diversa a seconda i dati immessi in questi due menu?

    Spero di essermi spiegata bene..

    Grazie

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    l'apertura di una finestra avviene tramite javascript, e più precisamente associando all'azione che ti interessa il comando
    window.open.


  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    56

    pop up con redirect

    ok, e come poso fare con i menu a discesa? En realtà la finalità è accedere attraverso questi due menu ad una pagina precisa(diversa a secondo la scelta combinata di tutte e due menu)

    Quindi faccio un javascript che mi apre un pop up generico e poi faccio un redirect che dipende dei dati immessi nei due menu nella pagina principale…

    Per recuperare questi dati da usare in una condizione tipo:

    if($this==”pippo” && $that==”pippo1”) {
    header("locationagina1");
    if($this==”pippo2” && $that==”pippo1”) {
    header("locationagina2");
    } else {
    header("locationagina3");
    }

    che codice devo utilizzare? È necessario un db o esiste un modo più semplice?

    Cordialità

  7. #7
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    Allora, prima di tutto se vuoi aprire una finestra popup potrebbe funzionare solo con firefox se vuoi mettere window.open ma se vuoi che sia alla portata di tutti devi mettere questo codice:
    codice:
    if($this == "pippo" && $that == "pippo1") {
      echo "<html>
    <head>
    <script type="text/javascript">
    function apri(file, titolo) { 
    newin = window.open(file, titolo, "width=200,height=200,left=100,top=100");
    </script>
    <body onload="apri('file', 'titolo finestra')>
    }
    </script>
    e poi sotto ci mette quello che vuoi, poi al file che indichi allo script devi mettere
    codice:
    <html>
    <head>
    <script language='javascript'>
    
    	function redireziona() {
    
    		location = 'pagina di destinazione'
    
    	}
    
    	function inizia_conteggio() {
    
    		self.setTimeout('redirect()', 4000);
    
    	}
    
    </script>
    <body onload="inizia_conteggio()">
    (personalizza il testo della durata del redirezionamento)

  8. #8
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    la durata del redirezionamento sarà di 4 secondi

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    56

    menu a discesa

    Quindi si ho capito bene, all’interno del primo file inserisco il codice php e lo javascript all’interno del codice html che mi apre la pagina…

    Allora non è possibile indicare gia in questa condizione le diverse pagine immettendo diversi if ed evitare il redirect posteriore?

    La mia finalità è aprire a seconda la scelta combinata di due menu a discesa una diversa pagina ogni volta, tipo: scelta primo menu = progetto1 + scelta secondo menu = data1 apre pagina dove ci sono i contenuti relazionati a questo progetto in quella data ecc... essendo possibili infinite possibilità.

    Saluti

  10. #10
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    Non tutto quello che hai scritto è corretto. Allora ti metto il codice da mettere tutto in un file php così diventa + facilee, segui i commenti per configurarlo. Devi prestare una partcolare attenzione allo switch che servirà a non mettere molti if.
    Codice PHP:
    <?php
    $questo 
    $_GET['pippo1']; //metti al posto di $_GET['pippo1'] e $questo il nome del primo select
    $quello $_GET['pippo2']; //metti al posto di $_GET['pippo2'] e $quello il nome del secondo select
    $PHP_SELF "nome.php"//metti il nome di questo file
    $action $_GET['action']; //non toccare questa variabile

    switch ($questo) {
      case 
    'pippo':
        if(
    $quello == "pippo1") {
          
    $pagina "pagina1.html"/*se questo sarà pippo(case 'pippo')e quello sarà pippo1 (con if) la variabile $pagina sarà pagina1.html (che nel prossimo codice sarà indicata come$pagina nel redirezionamento (metti l'url completo alla pagina richiesta)*/
         
    /*parentesi graffa di chiusura dell'if*/
        
    break;
      case 
    'pippo2':
        if(
    $quello == "pippo3") {
          
    $pagina "pagina2.html"/*e così via fino alla fine dello switch*/
        
    /*parentesi graffa di chiusura dell'if, ricorda che se devi mettere diversi case 'nome': devi dividerli con un break; come nell'esempio sopra. puoi mettere + di un if per ogni case, ma ricorda di chiuderlo con una parentesi graffa al punto giusto*/
    /*parentesi graffa di chiusura dello switch*/

    echo "<html>
    <head>
    <script type=\"text/javascript\">
    function popup() { 
    newin = window.open(\"
    $PHP_SELF?action=redirect&pagina=$pagina\", \"popup\", \"width=200,height=200,left=100,top=100,resizable=yes,scrollbars=yes,menubar=no,tollbar=no,status=no,location=no\");
    }
    </script>
    </head>
    <body onload=\"popup()\">
    E' stata aperta una finestra popup per l\'indirizzo scelto nel menu, diattivare il blocco popup per visualizzata
    </body>
    </html>"
    ;

    if(
    $action == "redirect") {
      
    $pagina $_GET['pagina'];
      
      echo 
    "<html>
    <head>
    <script language='javascript'>

        function redireziona() {

            location = '
    $pagina'

        }

        function inizia_conto() {

            self.setTimeout('redireziona()', 4000);

        }

    </script>
    </head>
    <body onload=\"inizia_conto\">
    Attendere mentre venga caricata la pagina...
    Se non visualizzi niente entro 4 secondi clicca <a href=\"
    $pagina\" target=\"popup\">qui</a>";
    }
    ?>
    Non l'ho testato ma credo che funzioni e non ci siano problemi. Segui bene le istruzioni dello switch e ricorda chiudi i case 'nome': dello switch con break; e il form con i select del tuo sito deve avere come metodo GET. Spero di essere stato chiaro se vuoi altre spiegazioni contattami per email o mandami un messaggio privato.

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.