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

    Cambiare valore Select senza ricaricare la pagina

    Salve a tutti, ben risentiti.
    Dovrei cambiare il valore di una select al modificarsi di un altra senza ricaricare la pagina.
    https://app.danielebarisano.it/risik...gni-tavolo.php Questo è il link della pagina, praticamente il valore del nome dovrebbe cambiare alla variazione dell utente sul cognome.
    Serve Ajax?
    Ridatemi un suggerimento e se possibile postatemi il codice, non penso sia un sacco di codice.

    Saluti

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,131
    Dipende se i dati che devi caricare sono sul server e sono tanti usi Ajax, altrimenti puoi caricarli direttamente quando generi la pagina e li mostri al bisogno.
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Ci sono quasi.
    codice:
    <select id="nome" name="nome"> <option value="0"> Selezionare Nome </option>  
                                                <script type="text/javascript"> 
                                                 $("#cognome").on("change", function() {    
                                                 $.ajax({       
                                                    type: "GET",
                                                    url : "return-nome.php",
                                                    data :  "cognome="+$("#cognome").val() ,  
                                                    dataType: "json",
                                                    success : function(risultato) {
                                                        risultato.forEach(function(data) {                              
                                                        <option value = "data">data</option>        
                                                       });
                                                    },
                                                    error: function() {
                                                     alert('Errore');
                                                  }
                                                  });              
                                                  });
                                                  </script>
    </select>
    
    Nel codice soprastante la variabile cognome viene passata correttamente al file return-nome.php http://app.danielebarisano.it/risiko...gnome=barisano Funziona correttamente , restituisce
    il nome giusto. Ora non riesco a stampare quei valori sulla select nome. cosa c'è di errato in quel codice JQuery?

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    cosa c'è di errato in quel codice JQuery?
    codice:
                                                    success : function(risultato) {
                                                        risultato.forEach(function(data) {                              
                                                        <option value = "data">data</option>        
                                                       });
                                                    },
    Ciao, l'errore è che stai scrivendo la parte HTML in chiaro all'interno del JavaScript; devi invece usare gli opportuni ed eventuali metodi JavaScript/jQuery per poter inserire/modificare l'HTML della pagina.

    Una possibile impostazione potrebbe essere questa:
    codice:
    <select id="nome" name="nome"> <option value="0"> Selezionare Nome </option>
    
    <script type="text/javascript">
        $("#cognome").on("change", function() {
            $.ajax({
                type: "GET",
                url : "return-nome.php",
                data :  "cognome="+$("#cognome").val() ,
                dataType: "json",
                success : function(risultato) {
                    var strHtml = '<option value="0"> Selezionare Nome </option>';
                    risultato.forEach(function(data) {
                        strHtml += '<option value="' + data + '">' + data + '</option>';
                    });
                    $('#nome').html(strHtml);
                },
                error: function() {
                    alert('Errore');
                }
            });
        });
    </script>
    Non l'ho testato ma l'importante è che tu capisca il modo corretto di procedere.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Non li conosco molto JQuery e Javascript.
    Cmq
    codice:
    success : function(risultato) {
                                                        var strHtml = '<option value="0"> Selezionare Nome </option>';
                                                        risultato.forEach(function(data) {
                                                          strHtml += '<option value="' + data + '">' + data + '</option>';
                                                        });
                                                        $('#nome').html($strhtml);
                                                    },
    
    in $('nome').html(strhtml); anche se sostituisco strhtml con una stringa Es. 'Seleziona' non mi stampa niente. Ho anche aggiunto <scriptsrc="https://code.jquery.com/jquery-3.4.0.min.js"type="text/javascript"></script> la libreria jquery
    Dove può essere il problema?

  6. #6
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Le cause possono essere svariate, una inclusione scorretta della libreria, una comunicazione errata col server, degli errori di sintassi nello script.

    Per capire dove sta la causa, o le cause, del problema, dovresti fare un debug e andare per step.

    Inizierei col verificare se in console si ricevono errori di script.

    Premi F12 sul tuo browser per aprire gli strumenti di sviluppo web, quindi vai sulla scheda console.
    Da qualche parte c'è un filtro dei messaggi, seleziona giusto "Errori" quindi aggiorna la tua pagina e verifica se ti salta fuori qualche messaggio di errore.

    Da qui possiamo iniziare a capire come procedere.


    EDIT: aspetta, che cappero ci fa quel $ che hai aggiunto in .html($strhtml);???
    Inoltre ricorda che JavaScript è case-sensitive. Controlla bene il mio esempio, non mi pare che io te lo abbia indicato così.
    Ultima modifica di KillerWorm; 24-07-2020 a 15:38
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  7. #7
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Le cause possono essere svariate, una inclusione scorretta della libreria, una comunicazione errata col server, degli errori di sintassi nello script.

    Per capire dove sta la causa, o le cause, del problema, dovresti fare un debug e andare per step.

    Inizierei col verificare se in console si ricevono errori di script.

    Premi F12 sul tuo browser per aprire gli strumenti di sviluppo web, quindi vai sulla scheda console.
    Da qualche parte c'è un filtro dei messaggi, seleziona giusto "Errori" quindi aggiorna la tua pagina e verifica se ti salta fuori qualche messaggio di errore.

    Da qui possiamo iniziare a capire come procedere.


    EDIT: aspetta, che cappero ci fa quel $ che hai aggiunto in .html($strhtml);???
    Inoltre ricorda che JavaScript è case-sensitive. Controlla bene il mio esempio, non mi pare che io te lo abbia indicato così.
    Ho tolto quel $ chemi era sfuggito. cmq questo è l indirizzo: da chrome non vedo errori su Console https://app.danielebarisano.it/risik...gni-tavolo.php

  8. #8
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    Mi spiace ma in quella pagina non vedo il form vedo giusto questo testo:

    Non puoi gestire questa pagina dato il livello di utenza
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  9. #9
    Quote Originariamente inviata da KillerWorm Visualizza il messaggio
    Mi spiace ma in quella pagina non vedo il form vedo giusto questo testo:
    Il form non lo vedevi perchè nella pagina possono fare l accesso gli admin.
    ora posto il codice corretto, giorni fa ho risolto il problema

    codice:
    <div id="idstam" class="form-group has-placeholder">
                                                Nome
                                                <select id="nome" name="nome"> 
                                                <!--option value="Daniele">Daniele</option>
                                                <option value="Francesco">Francesco</option-->
                                                <script type="text/javascript">
                                                    $("#cognome").on("change", function() { 
                                                        $.ajax({        
                                                            type: "GET",
                                                            url : "return-nome.php",
                                                            data :  "cognome="+$("#cognome").val() ,  
                                                            dataType: "json",
                                                            success : function(risultato) {
                                                                //console.log(risultato);
    
                                                                var selectorHtml = "";
                                                                risultato.forEach(function(item) {
                                                                    selectorHtml += '<option value="' + item.nome + '">' + item.nome + '</option>';
                                                                })
                                                                $('#nome').html(selectorHtml);
                                                            },
                                                            error: function(xhr, status, error) {
                                                                console.log(status)
                                                                console.log(error)
                                                            }
                                                        });              
                                                    });
                                                  </script>
                                                  </select>                                            
                                                </div>
    
    Saluti

  10. #10
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,691
    giorni fa ho risolto il problema
    Perfetto, mi fa piacere si sia risolto
    Buon proseguimento
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

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.