Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31

Discussione: Update multiplo

  1. #1

    Update multiplo

    Ciao ragazzi ho bisogno di aiuto.
    Non ho competenze in js e più precisamente in ajax, sto iniziando solo adesso a prendere confidenza.

    Ho trovato un bellissimo tutorial per effettuare un update multiplo con l'aiuto di ajax, era proprio quello che stavo cercando l'ho adattato al mio bisogno e funziona tutto, c'è solo una cosa che vorrei variare ma non riesco proprio a capire come fare.

    E' possibile modificare lo script eliminando i checkbox ad inizio record, quindi senza dovere cliccare ogni volta su ognuno di loro per attivare il record?
    Mi piacerebbe che l'utente avesse la possibilità di effettuare l'update senza dovere ogni volta spuntare il checkbox, qualcuno può aiutarmi.

    posto il codice ajax e il link al tutorial

    https://www.webslesson.info/2018/09/...ax-jquery.html

    codice:
    <script>
        $(document).ready(function(){
    
            function fetch_data()
            {
                $.ajax({
                    url:"select.php",
                    method:"POST",
                    dataType:"json",
                    success:function(data)
                    {
                        var html = '';
                        for(var count = 0; count < data.length; count++)
                        {
                            html += '<tr>';
    
                            html += '<td>' +
                                '<input type="checkbox" ' +
                                'id="'+data[count].id+'" ' +
                                'data-categoria="'+data[count].categoria+'" ' +
                                'data-sottocategoria="'+data[count].sottocategoria+'" ' +
                                'data-domanda="'+data[count].domanda+'" ' +
                                'data-risposta="'+data[count].risposta+'" ' +
                                'data-commenti="'+data[count].commenti+'" ' +
                                'data-azioni="'+data[count].azioni+'" class="check_box"  /></td>';
    
                            html += '<td>'+data[count].categoria+'</td>';
                            html += '<td>'+data[count].sottocategoria+'</td>';
                            html += '<td>'+data[count].domanda+'</td>';
                            html += '<td>'+data[count].risposta+'</td>';
                            html += '<td>'+data[count].commenti+'</td>';
                            html += '<td>'+data[count].azioni+'</td></tr>';
                        }
                        $('tbody').html(html);
                    }
                });
            }
    
            fetch_data();
    
            $(document).on('click', '.check_box', function(){
                var html = '';
    
                if(this.checked)
                {
                    html = '<td>' +
                        '<input type="checkbox" ' +
                        'id="'+$(this).attr('id')+'" ' +
                        'data-risposta="'+$(this).data('risposta')+'" ' +
                        'data-commenti="'+$(this).data('commenti')+'" ' +
                        'data-azioni="'+$(this).data('azioni')+'" class="check_box" checked />' +
                        '</td>';
                    html += '<td>'+$(this).data("categoria")+'</td>';
                    html += '<td>'+$(this).data("sottocategoria")+'</td>';
                    html += '<td>'+$(this).data("domanda")+'</td>';
                    html += '<td>' +
                        '<select name="risposta[]" id="risposta_'+$(this).attr('id')+'" class="form-control">' +
                        '<option value="1">SI</option>' +
                        '<option value="2">NO</option>' +
                        '<option value="3">N/A</option>' +
                        '</select>' +
                        '</td>';
                    html += '<td><input type="text" name="commenti[]" class="form-control" value="'+$(this).data("commenti")+'" /></td>';
                    html += '<td><input type="text" name="azioni[]" class="form-control" value="'+$(this).data("azioni")+'" /><input type="hidden" name="hidden_id[]" value="'+$(this).attr('id')+'" /></td>';
                }
    
    
                $(this).closest('tr').html(html);
                $('#risposta_'+$(this).attr('id')+'').val($(this).data('risposta'));
            });
    
            $('#update_form').on('submit', function(event){
                event.preventDefault();
                if($('.check_box:checked').length > 0)
                {
                    $.ajax({
                        url:"multiple_update.php",
                        method:"POST",
                        data:$(this).serialize(),
                        success:function()
                        {
                            alert('Dati aggiornati');
                            fetch_data();
                        }
                    })
                }
            });
    
        });
    </script>

  2. #2
    nessuno ?

  3. #3
    Ragazzi, per gli esperti di ajax e js dovrebbe essere molto semplice.

    Mi funziona tutto alla grande !
    Ma vorrei solo evitare che l'utente debba cliccare il checkbox di ogni record per attivare i tag input e select, mi aiutate?
    Vorrei solo che all'eventi onload ogni record fosse già attivo e vorrei proprio escludere i checkbox non farli comparire

  4. #4
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,340
    Ciao ,
    prova così

    codice:
     $('#update_form').on('submit', function(event){
                event.preventDefault();
               
               
                    $.ajax({
                        url:"multiple_update.php",
                        method:"POST",
                        data:$(this).serialize(),
                        success:function()
                        {
                            alert('Dati aggiornati');
                            fetch_data();
                        }
                    })
                
            });
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  5. #5
    Ciao Ciro78 e scusa del ritardo nella risposta.
    Premetto che non ho ancora provato il tuo codice, ma da quello che vedo mi servirà per l'update escludendo l'azione sul checkbox,
    in realtà il mio problema è anche un altro e arriva prima dell'invio dei dati.
    Lo script postato richiede, per attivare i campi di input e select e permettere all'utente d'inserire testo ed effettuare la scelta select,
    la spunta di ogni checkbox posizionato all'inizio di ogni record della tabella, io vorrei innanzitutto evitare proprio questo, vorrei i campi di input e select fossero attivati di default all'evento onLoad della pagina, spero si avere spiegato bene.

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,078
    Prova ad aggiungere il checked quando crei la checkbox
    codice:
    'data-azioni="'+data[count].azioni+'" class="check_box"  CHECKED /></td>';
    (checked in minuscolo ovviamente)
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Quote Originariamente inviata da cavicchiandrea Visualizza il messaggio
    Prova ad aggiungere il checked quando crei la checkbox
    Ci ho sperato, niente da fare.
    Se creo la checkbox già attivata (checked) risulta solo spuntata ma non attiva ne la select ne i campi di imput.

  8. #8
    codice:
    $(document).on('click', '.check_box', function(){    var html = '';
    
        if(this.checked)
        {
    Ma il problema non è in questa parte della funzione ?
    Ovvero, da quanto capisco viene chiesto che all'evento click dell'attributo .check_box si devono attivare, visualizzare select e campi di input, io vorrei invece che venissero fuori all'evento load, cioè subito di default al caricamento della pagina, ma non riesco a capire come fare.

  9. #9
    Amministratore L'avatar di Vincent.Zeno
    Registrato dal
    May 2003
    residenza
    Emilia-Romagna (tortellini und cappelletti land!)
    Messaggi
    19,935
    visto che lo script in questione serve appunto per abilitare le singole voci, come mai lo vuoi inefficiare nelle sua peculiarità?
    vuoi comunque mantenere la possibilità di deselezionare alcune voci, o non interessa?

  10. #10
    Quote Originariamente inviata da Vincent.Zeno Visualizza il messaggio
    vuoi comunque mantenere la possibilità di deselezionare alcune voci, o non interessa?
    Si esatto non m'interessa escludere delle voci.

    Quello che cercavo era un codice che mi aiutasse ad aggiornare massivamente i record di una tabella (magari con ajax con chiamate asincrone) e funziona tutto alla grande per il mio scopo, l'unica modifica che vorrei apportare, visto devo aggiornati tutti i campi senza nessuna esclusione, era quella di evitare l'attivazione di ogni singolo record tramite checkbox.

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