Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    valori menu a tendina dinamico

    ciao a tutti,
    ho un grosso problema e spero in un vostro aiuto.

    Devo caricare su un dominio di altervista un portale, e la maggior parte di esso funziona con dei menu a tendina dinamici che ho realizzato mediante del codice trovato in questo trh http://forum.html.it/forum/showthrea...readid=641205.

    La cosa strana è che tutto funziona bene sul dominio di altervista su cui attualmente gira, mentre fallisce su di un altro appena creato, E SU CUI DOVRA' GIRARE ALLA FINE.

    Per mostrarvi concretamente ciò di cui parlo, ho caricato la stessa pagina di prova, contenente un menu a tendina dinamico su 2 domini diversi di altervista.

    Su uno funziona, sull'altro i valori di uno dei menu scompare una volta selezionato.

    link funzionante: http://www.ctedintorni.altervista.or...mico/menu1.php

    link NON funzionante:http://www.smartsicily.altervista.or...mico/menu1.php


    il codice
    Codice PHP:

    <html>

    <head>

    <script language="javascript">

    function inviaCambiamenti(){
      document.form1.action = " <?php echo $PHP_SELF?>"; 
      document.form1.submit();
    }

    </script>



    </head>




    <?
    require('connessione.php');
    $query="SELECT * FROM categoria order by 'tipo_categoria'";
     
    $result mysql_query($query,$connessione) or die("prima query fallita".mysql_error());
    ?>
    <form name="form1">
      


        <select name="categoria" onChange="inviaCambiamenti()">
          <?
     
     
    echo "<option value=\"\">Seleziona</option>";
     while(
    $row mysql_fetch_assoc($result))
     {
      if(!empty(
    $categoria))
      {
       if (
    $row[id_categoria]<>$categoria)
       {
        echo 
    '<option value="'.$row[id_categoria].'" >'.$row[tipo_categoria].'</option>';
       }
       else                    
       {
        echo 
    '<option value="'.$row[id_categoria].'" SELECTED>'.$row[tipo_categoria].'</option>';            
       }
      }
      else 
      {
       echo 
    '<option value="'.$row[id_categoria].'">'.$row[tipo_categoria].'</option>';
      }
    }
    ?>
        </select>
        Menù per le sottocategorie:codice: 
        <?
      $query
    ="SELECT * FROM gruppo WHERE id_categoria='$categoria' order by 'tipo_gruppo'";
      
    $result mysql_query($query,$connessione) or die("seconda query fallita".mysql_error());
      
        echo
    "
    "
    ;
     print(
    " sottocategorie:");
      echo
    "
    "
    ;
      
    ?>
        <select name="gruppo">
          <?

      
    echo "<option value=\"\">Seleziona</option>";
      while(
    $row mysql_fetch_assoc($result))
      {
       if(!empty(
    $gruppo))
       {
        if (
    $row[id_gruppo]<>$gruppo)
        {
        echo 
    '<option value="'.$row[id_gruppo].'" >'.$row[tipo_gruppo].'</option>';
        }
        else                    
        {
         echo 
    '<option value="'.$row[id_gruppo].'" SELECTED>'.$row[tipo_gruppo].'</option>';
        }
       }
       else 
       {
        echo 
    '<option value="'.$row[id_gruppo].'">'.$row[tipo_gruppo].'</option>';
       }
    }
    ?>
        </select>
      </p>
      

     </p>
    </form>

    </html>

    Come posso risolvere? devo assolutamente caricare il tutto sul dominio dove il menu a tendina dinamico fallisce. Grazie.

  2. #2
    Ad occhio mi sembra che manchi qualcosa nel codice JS. Su quello funzionante hai:
    codice:
    document.form1.action = " /menudinamico/menu1.php";    
    document.form1.submit();
    Nell'altro invece hai solo:
    codice:
    document.form1.action = " ";    
    document.form1.submit();
    Devi aggiungere l'action a quello che non funziona in pratica . Fammi sapere se funziona .
    Fare o non fare....non c'è provare!

  3. #3
    prova a mettere
    document.form1.action = " <?php echo $_SERVER['PHP_SELF'] ; ?>";

    al posto di

    document.form1.action = " <?php echo $PHP_SELF; ?>";

    infatti se vedi la sorgente in quello che non funziona l'action è nulla
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    il problema è la variabile $categoria che non inizializzi (e nel primo server deve avere le impostazioni di default dal form, mentre nel secondo no)... prova ad aggiungere il metodo POST e a mettere in cima allo script $categoria = ((isset($_POST['categoria']))?($_POST['categoria'])null)); (puoi anche lasciare GET... io cmq cambierei la logica complessiva... ma... prova cmq)

  5. #5
    è che altervista penso abbia mantenuto register_globals = On , cmq se guardi come ripeto la sorgente di quello che non funziona vedi che non ti stampa neanche l'action :action =""
    Un tardo hegeliano di Busalla / allevava un gorilla nella stalla
    citando Adorno nell notti chiare / finché il primate stanco di ascoltare
    lo strangolò con una sciarpa gialla Dillo Con Parole Sue

  6. #6
    Grazie per avermi risposto.
    ho sostituito il codice con i vostri suggerimenti, ma ancora non funziona. l'unico cambiamento è che ora il valore del primo menù non scompare, ma non si popola il secondo menu.

    Codice PHP:

    <html>

    <head>

    <script language="javascript">

    function inviaCambiamenti(){
    $categoria = ((isset($_GET['categoria']))?($_GET['categoria'])null))

    document.form1.action = " <?php echo $_SERVER['PHP_SELF'] ; ?>"; 
      document.form1.submit();
    }

    </script>



    </head>




    <?




    require('connessione.php');



    $query="SELECT * FROM categoria order by 'tipo_categoria'";
     
    $result mysql_query($query,$connessione) or die("prima query fallita".mysql_error());
    ?>
    <form name="form1">
      


        <select name="categoria" onChange="inviaCambiamenti()">
          <?

     
    echo "<option value=\"\">Seleziona</option>";
     while(
    $row mysql_fetch_assoc($result))
     {
      if(!empty(
    $categoria))
      {
       if (
    $row[id_categoria]<>$categoria)
       {
        echo 
    '<option value="'.$row[id_categoria].'" >'.$row[tipo_categoria].'</option>';
       }
       else                    
       {
        echo 
    '<option value="'.$row[id_categoria].'" SELECTED>'.$row[tipo_categoria].'</option>';            
       }
      }
      else 
      {
       echo 
    '<option value="'.$row[id_categoria].'">'.$row[tipo_categoria].'</option>';
      }
    }
    ?>
        </select>
        Menù per le sottocategorie:codice: 
        <?
      $query
    ="SELECT * FROM gruppo WHERE id_categoria='$categoria' order by 'tipo_gruppo'";
      
    $result mysql_query($query,$connessione) or die("seconda query fallita".mysql_error());
      
        echo
    "
    "
    ;
     print(
    " sottocategorie:");
      echo
    "
    "
    ;
      
    ?>
        <select name="gruppo">
          <?

      
    echo "<option value=\"\">Seleziona</option>";
      while(
    $row mysql_fetch_assoc($result))
      {
       if(!empty(
    $gruppo))
       {
        if (
    $row[id_gruppo]<>$gruppo)
        {
        echo 
    '<option value="'.$row[id_gruppo].'" >'.$row[tipo_gruppo].'</option>';
        }
        else                    
        {
         echo 
    '<option value="'.$row[id_gruppo].'" SELECTED>'.$row[tipo_gruppo].'</option>';
        }
       }
       else 
       {
        echo 
    '<option value="'.$row[id_gruppo].'">'.$row[tipo_gruppo].'</option>';
       }
    }
    ?>
        </select>
      </p>
      

     </p>
    </form>

    </html>
    Qualche aiuto?

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    stampa a video il valore della variabile $categoria (manca un ":" - due punti - nel codice di inizializzazione, prima di null, cmq) e metti $categoria = (isset... subito dopo require dentro il blocco php

  8. #8
    Codice PHP:
    $categoria = ((isset($_GET['categoria']))?($_GET['categoria'])null)) 
    Se vuoi includere anche questa modifica non puoi metterla così dentro una funzione JS(non puoi mettercelo affatto)....questo è php quindi devi racchiuderlo nei suoi appositi tag(<?php ?>)
    Fare o non fare....non c'è provare!

  9. #9
    Codice PHP:
    .....
      

     </p>
    </form>
    <? print("il valore della variabile categoria ".$categoria); ?>
    non lo stampa. dove sbaglio?

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    "quoto" l'ultimo suggerimento :)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.