Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    5

    Generazione di area testo/tendina su pagina php dinamica

    Buongiorno, è il mio primo messaggio su questo forum, ho un grosso problema: sul mio sito è presente un catalogo di libri, che è possibile filtrare con una ricerca per un singolo campo scglibile tramite tendina; alcuni campi (es. Autore) necessitano di inserimento tramite text, altri (es Editore, Formato) hanno un inserimento tramite tendina che "pesca" dal db. Per fare questo la pagina, una volta scelto il parametro per cui cercare, ricarica e carica a seconda un'area di testo o la tendina. Vorrei che la cosa avvenisse dinamicamente senza dover ricaricare la pagina, ma cercando un po' ho scoperto la cosa è integrabile solo via javascript (di cui ho ZERO esperienza). Ci sono form copypastabili per la generazione di tendine dinamiche, ma il mio problema è che non tutti i parametri di ricerca devono generare tendina, alcuni generano area di testo.

    Qui di seguito c'è il codice della pagina:

    Codice PHP:
     <?php

        
    include ('sbclass.php');
        

        
    $par=$_POST['par'];
        
        if (
    $par==''){
        
            echo 
    "<form method='post' action='catalogo.php'>";
            echo 
    "Ricerca per:  ";
            echo 
    "<select name = 'par'>";
            echo 
    "<option value =".NULL."> -Scegli- </option>";
        
            echo 
    '<option value = isbn > ISBN </option>';
            echo 
    '<option value = titolo > Titolo </option>';
            echo 
    '<option value = key > Chiave </option>';
            echo 
    '<option value = edi > Editore </option>';
            echo 
    '<option value = aut > Autore </option>';
            echo 
    '<option value = for > Formato </option>';
            echo 
    '<option value = coll > Collana </option>';
            echo 
    '<option value = cat > Categoria </option>';
            echo 
    '<option value = tar > Target </option>';

            echo 
    '</select>
    '
    ;
            echo 
    "<input type='submit' value=Cerca! class='buy btn_l'>";

        }
        
        else{
            echo 
    "<form method='post' action='filtered.php'>";

        
            if (
    $par=='isbn'){
                echo 
    "Ricerca per ISBN: <input type='text' name='isbn'>
    "
    ;
            }
            if (
    $par=='titolo'){
                echo 
    "Ricerca per Titolo: <input type='text' name='titolo'>
    "
    ;
            }
            if (
    $par=='key'){
                echo 
    "Ricerca per Parole Chiave: <input type='text' name='key'>
    "
    ;
            }
            
            if (
    $par=='edi'){
                echo 
    "Ricerca per Editore: ";
            
                    
    $db=new Database();
                    
    $_SESSION['db']=serialize ($db);
            
                    
    $db->connect();
            
                    
    $query="SELECT DISTINCT editore FROM schede;";
            
                    
    $ris=$db->query($query);
            
                echo 
    "<select name = 'edi'>";
                echo 
    "<option value =".NULL."> -Editore- </option>"// valore default NULL
                    
    while ($row=mysql_fetch_array($ris)) {
                        if(
    $row['editore']!=''){
                        echo 
    '<option value ="'.$row['editore'].'">'.$row["editore"]."</option>"//...value = "' e '">.... son fatti così perché sennò se ci sono spazi html inserisce delle "" che mi interrompono la stringa alla prima parola.
                        
                    
    }
                    }
                echo 
    '</select>
    '
    ;
            }
            
            if (
    $par=='for'){
            
                echo 
    "Ricerca per Formato: ";
            
                    
    $db=new Database();
                    
    $_SESSION['db']=serialize ($db);
            
                    
    $db->connect();
            
                    
    $query="SELECT DISTINCT formato FROM schede;";
            
                    
    $ris=$db->query($query);
            
                echo 
    '<select name = "for">';
                echo 
    "<option value =".NULL."> -Formato- </option>"// valore default NULL
                    
    while ($row=mysql_fetch_array($ris)) {
                        if(
    $row['formato']!=''){
                        echo 
    '<option value ="'.$row['formato'].'">'.$row["formato"]."</option>";
                    }
                    }
                echo 
    '</select>
    '
    ;
            }
            
            if (
    $par=='aut'){
                echo 
    "Ricerca per Autore: <input type='text' name='aut'>
    "
    ;
            }

            if (
    $par=='coll'){
        
                echo 
    "Collana: ";
                
                        
    $db=new Database();
                        
    $_SESSION['db']=serialize ($db);
                
                        
    $db->connect();
                
                        
    $query="SELECT DISTINCT collana FROM schede;";
                
                        
    $ris=$db->query($query);
                
                    echo 
    '<select name = "coll">';
                    echo 
    "<option value =".NULL."> -Collana- </option>"// valore default NULL
                        
    while ($row=mysql_fetch_array($ris)) {                
                            if(
    $row['collana']!=''){
                            echo 
    '<option value ="'.$row['collana'].'">'.$row["collana"]."</option>";
                        }
                        }
                    echo 
    '</select>
    '
    ;
            }
            
            if (
    $par=='cat'){
        
                echo 
    "Ricerca per Categoria: ";
                
                        
    $db=new Database();
                        
    $_SESSION['db']=serialize ($db);
                
                        
    $db->connect();
                
                        
    $query="SELECT DISTINCT categoria FROM schede;";
                
                        
    $ris=$db->query($query);
                
                    echo 
    '<select name = "cat">';
                    echo 
    "<option value =".NULL."> -Categoria- </option>"// valore default NULL
                        
    while ($row=mysql_fetch_array($ris)) {
                            if(
    $row['categoria']!=''){
                            echo 
    '<option value ="'.$row['categoria'].'">'.$row["categoria"]."</option>";
                        }
                        }
                    echo 
    '</select>
    '
    ;
            }
                
            if (
    $par=='tar'){
                
                    echo 
    "Ricerca per Target: ";
            
                        
    $db=new Database();
                        
    $_SESSION['db']=serialize ($db);
                
                        
    $db->connect();
                
                        
    $query="SELECT DISTINCT target FROM schede;";
                
                        
    $ris=$db->query($query);
                
                    echo 
    '<select name = "tar">';
                    echo 
    "<option value =".NULL."> -Target- </option>"// valore default NULL
                        
    while ($row=mysql_fetch_array($ris)) {
                            if(
    $row['target']!=''){
                            echo 
    '<option value ="'.$row['target'].'">'.$row["target"]."</option>";
                        }
                        }
                    echo 
    '</select>
    '
    ;

            }
            echo 
    "<input type='submit' value=Cerca! class='buy btn_l'>";
        }
    echo 
    '

    '
    ;


    ?>


    P.S. se andava postato nell'area php, perdonatemi!

    Grazie mille!

  2. #2
    Si per modificare parti di una pagina, quindi il dom, devi utilizzare javascript. Non ci sono altre alternative. Nel tuo caso poi occorre anche che javascript comunichi con il php, che è possibile farlo mediante ajax. Io ti consiglio ti utilizzare un framework tra mootools o jquery, che ti rendono il tutto molto più facile.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    5
    Grazie mille, almeno so che da javascript non si scappa. Il problema è che non ho maimaimai programmato in Java, se foste così gentili da copypastarmi una possibile soluzione al problema nel codice che ho postato sareste davvero i numeri uno!

    E' un lavoro abbastanza importante e con una certa priorità, e nonostante avessi precisato ai capi di non saperne di Java mi hanno tirato in mezzo a 'sta cosa e non riesco a venirne a capo, aiuto!

  4. #4
    Supponendo che qualcuno di scriva tutto il codice, se poi un domani hai bisogno di modificare questo script? cosa fai ricontatti la persona che te lo ha fatto?

    Se vuoi farlo ti consiglio di vederti questo articolo:
    http://www.html.it/articoli/ajax-con-mootools-1/
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2012
    Messaggi
    5
    Ti ringrazio per il link!

    Ma quindi, se ho capito bene, devo mettere una funzione (on change?) che, al variare del parametro mi generi un'area di testo o una tendina popolata.
    A livello di sintassi non saprei però proprio da dove cominciare!

  6. #6
    All'onchange dovresti contattare una pagina php che ti restituisca i risultati e in base a quei risultati vai a popolare la tua tendina o la tua area di testo. E' il php che può reperire i dati dal db.
    CODENCODE \ Branding \ Design \ Marketing
    www.codencode.it

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.