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

    Aiutino completamento codice Php

    Ciao a tutti.
    Sono riuscito a scrivere un paginetta di codice Php per creare un modulo (un menu ad elenco con più opzioni) collegato ad un db mysql.
    Tutto funziona: vedo le opzioni, clicco, la query fa il suo lavoro, visualizzo il risultato su tabella. Vorrei però che la query (che vi ripoprto sotto( venisse eseguita SOLO quando il cliente clicca una certa opzione dal menu. Come l'ho scritta io ora, qualsiasi opzione io clicchi (opzione1, opzione 2...) faccio partire la query e visualizzo i risultati. No, la query devo associarla solo ad una opzione specifica (ignorando le altre). Credo che il mio errore sia nella riga dove imposto "if f(isset($_POST...."ecc.
    posto il codice. Credo sia semplice modificare quella riga per ottenere il risultato che chiedo, ma da solo nn son riuscito. Grazie mille a tutti.


    Codice PHP:
    <form name="form1" method="post" action="">


    Elige la profesion:

         

    Elenco:
      
       <select name="select2[]" size="5">  
           <option value="1">Opzione1</option>  
           <option value="2">Opzione 2</option>  
           <option value="3">Opzione 3</option>  
           <option value="4">Opzione 4</option>  
         </select>  
       </p>  
      </p>
       

      
        <input type="submit" name="Submit" value="Invia">  
      </p> 
    </form>


    <?php
    //CONNESSIONE AL DATABASE
    $host 'localhost';
    $user 'root';
    $password 'password';
    $database 'opzioni';

    $db mysql_connect($host$user$password)
    or die (
    "Impossibile connettersi a $host");

    mysql_select_db ($database$db)
    or die (
    "Impossibile connettersi a $database");


      
    if(isset(
    $_POST['select2']))
         { 
       

    //campi db:
    //id, membro, professione, professionesecondaria
    $query"select membro from professioni";
    $risultatomysql_query($query$db);
    print 
    "<table border=\"1\">\n";
    while (
    $linemysql_fetch_array($risultatoMYSQL_NUM)) {
    print 
    "\t<tr>\n";
    foreach (
    $line as $col_value) {
      print 
    "\t\t<td>$col_value</td>\n";
      }

    print 
    "\t</tr>\n";
    }
    print 
    "</table>\n";

    }

    mysql_close($db);

    //FINE CONNESSIONE AL DB
    ?>


    </body>
    </html>

  2. #2
    prova con quanto ti incollo sotto (funziona con l'opzione 3?), se non capirsci l'errore ti spiego

    Codice PHP:
    <form name="form1" method="post" action="">


    Elige la profesion:

         

    Elenco:
      
       <select name="select2" size="5">  
           <option value="1">Opzione1</option>  
           <option value="2">Opzione 2</option>  
           <option value="3">Opzione 3</option>  
           <option value="4">Opzione 4</option>  
         </select>  
       </p>  
      </p>
       

      
        <input type="submit" name="Submit" value="Invia">  
      </p>
    </form>


    <?php
    //CONNESSIONE AL DATABASE
    $host 'localhost';
    $user 'root';
    $password 'password';
    $database 'opzioni';

    $db mysql_connect($host$user$password)
    or die (
    "Impossibile connettersi a $host");

    mysql_select_db ($database$db)
    or die (
    "Impossibile connettersi a $database");


      
    if(
    $_POST['select2']==3)
         {
       

    //campi db:
    //id, membro, professione, professionesecondaria
    $query"select membro from professioni";
    $risultatomysql_query($query$db);
    print 
    "<table border=\"1\">\n";
    while (
    $linemysql_fetch_array($risultatoMYSQL_NUM)) {
    print 
    "\t<tr>\n";
    foreach (
    $line as $col_value) {
      print 
    "\t\t<td>$col_value</td>\n";
      }

    print 
    "\t</tr>\n";
    }
    print 
    "</table>\n";

    }

    mysql_close($db);

    //FINE CONNESSIONE AL DB
    ?>


    </body>
    </html>

  3. #3
    prova con quanto ti incollo sotto (funziona con l'opzione 3?), se non capirsci l'errore ti spiego
    Stasera, appena rientro dal lavoro, lo provo subito.
    Grazie già cmq per la disponibilità e gentilezza. Ti faccio sapere.

  4. #4
    Ok, funziona alla grande, grazie.
    L'unica stranezza, però, la fa appena carico la pagina php e cioè:
    mi compare il menu, e sotto però questo avviso

    "Notice: Undefined index: select2 in C:\Programmi\EasyPHP 2.0b1\www\modulo3.php on line 33"

    Appena clicco una delle opzioni, l'avviso sparisce e non torna più, compare solo al primo avvio della pagina.
    Da che potrebbe dipendere?

    Grazie ancora, ciao.

  5. #5
    Ok, forse ho risolto aggiungendo questa riga di codice

    Codice PHP:
    if (isset($_POST['select2'])) 
    Ora non mi dà più l'errore, seconde te è giusto ciò che ho fatto definendo l'isset oppure è solo casuale che l'errore sia sparito?

    Grazie ancora !

    Ciao
    Gianluca

  6. #6
    su linux non mi ha mai dato quall'errore
    fai così:
    if(isset($_POST['select2']) && $_POST['select2']=="3")

    if(isset($_POST['select2']))
    definisce l'if nel caso sia settata la select, se vuoi che la funzione parta solo quando l'utente selezioni un campo particolare non va bene, devi mettere la condizione discriminante per cui la varibile $_POST['select2'] sia uguale a uno dei valori (value) della select.
    ciao

  7. #7
    Fatto. Va alla grande. Grazie tanto per l'aiuto e per la spiegazione !

    Ciao

    Gianluca

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.