Visualizzazione dei risultati da 1 a 3 su 3

Discussione: PHP e Javascript

  1. #1

    PHP e Javascript

    Salve a tutti, questo è il mio primo messaggio sul forum
    Mi sono affacciato da poco tempo al mondo del javascript e sono già inciampato.

    Nell'interfaccia ho una select e qualche casella di testo. In base al valore della select, le caselle di testo assumono determinati valori, che sono presi presi da un database.

    Codice PHP:
    <script language="javascript">     
    function Visualizza()      
    {             
    <?php          
                     
    $pro 
    "document.modulo.artisti.value";    //metto in $pro il valore assunto dalla select 'artisti'
                
    $connessione mysql_connect("127.0.0.1","root","") or die ("Errore: impossibile connettersi.").mysql_error();             
    $seleziona mysql_select_db ("tribute_to_rock");         

    //LA QUERY PRENDE L'ELENCO DI TUTTI GLI ARTISTI                  
    $query "SELECT * FROM artisti WHERE codice = \"$pro\"";                      
    $res mysql_query ($query) or die ("Si è verificato un errore nel sistema");     
    $row mysql_fetch_array($res);    
     
    echo 
    "document.modulo.cognome.value = ".$pro.";";    //Per controllare il valore di $pro, faccio visualizzare il suo valore nella casella di testo 'cognome' 
                             
    $jsonarray json_encode($row['soprannome']);            //Metto il valore di cui ho bisogno nella casella di testo 'nome'. Questo però non viene visualizzato             
    echo "document.modulo.nome.value = ".$jsonarray.";";    
    mysql_close($connessione);         
    ?>              
    }
     </script>


    Nel codice PHP assegno il valore della select alla variabile $pro, che inserisco nella query. Ho verificato che la variabile assume il giusto valore anche dopo aver interagito con il database, ma dal database non preleva alcun dato.

    Inoltre sono sicuro che la query è giusta, dal momento che se sostituisco
    Codice PHP:
    $pro "document.modulo.artisti.value"
    con
    Codice PHP:
    $pro "01"
    funziona tutto alla perfezione. Non capisco quale sia il problema, dal momento che la variabile $pro assume in ogni caso gli stessi valori.
    Però, cosa curiosa, non funziona se invece assegno a $pro qualcosa diverso da un numero, ad esempio $pro = "asd";

    Insomma mi sembra un problema di interazione tra il PHP e il javascript. Non ho abbastanza esperienza per capire fino a quanto possono comunicare l'uno con l'altro, dal momento che uno lavora su lato server e l'altro su lato client.

    PS: non ho capito bene come funziona json_encode, so solo che se lo metto funziona (se assegno a $pro="01").
    One day even the war will bow to the sound of a guitar (Jimi Hendrix)

  2. #2
    Javascript è lato client, php lato server.
    Quando il browser chiede una pagina php, il server esegue delle funzioni per scrivere un output. L'output viene poi mandato al browser.
    Nel tuo caso, PRIMA viene eseguito il php, POI creato un output e mandato al browser.
    Quando modifichi la selezione di una combo, viene eseguita la funzione js ma NON il php (per come hai scritto tu e come ho capito io il tuo problema).

    Il codice che arriva al browser, infatti, sarà qualcosa del tipo
    Codice PHP:
    <script language="javascript">     
    function 
    Visualizza()      
    {
    document.modulo.cognome.value document.modulo.artisti.value;
    document.modulo.nome.value boh // dico boh perchè non so cosa restituisce il $jsonarray
    }
    </script> 
    Come vedi, se la funzione Visualizza la chiami con un "onchange" per esempio, non esegue il codice php (perchè...quel codice php è lato server e il client non ha idea della sua esistenza).

    Quello che ti serve, quindi, è ajax!


  3. #3
    Sia benedetto l'Ajax
    Ho risolto finalmente..
    Grazie mille Dascos, per avermi illuminato la strada
    One day even the war will bow to the sound of a guitar (Jimi Hendrix)

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.