Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Elaborazione dati form

  1. #1
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408

    Elaborazione dati form

    Salve a tutti,

    ho il seguente problema: in una pagina HTML richiamo ad ogni caricamento della pagina uno script php, tramite questo codice:

    codice:
    function viewdata(){
        $.ajax({
            type: "GET",
            url: "../control/viewVisualizzaProgetti.php"
        }).done(function(data) {
            $('#viewProgetti').html(data);
        });
    }
    uno script php che mi genera una tabella prelevando dei dati dal database. In particolare aggiunge una colonna finale con dei pulsanti che creano delle modal. Una di queste modal (quella su cui sto lavorando) serve a modificare i dati della riga della tabella per aggiornarli all'interno del database.

    La modal contiene questo form:

    codice HTML:
    <form method='POST' action='../control/viewSelezioneProgetto.php' >
        <div class='form-group'>
            <label for='nome'>ID</label><br>
            <input type='text' class='form-control' name='id' id='idProgetto".$table[$i][0]."' value='".$table[$i][0]."' readonly>
        </div>
        <div class='form-group'>
            <label for='nome'>Nome</label><br>
            <input type='text' class='form-control' name='nome' id='nome".$table[$i][0]."' value='".$table[$i][1]."'>
        </div>
        <div class='form-group'>        <label for='descrizione'>Descrizione</label><br>        <input type='text' class='form-control' name='descrizione' id='descrizione".$table[$i][0]."' value='".$table[$i][2]."'>    </div>    <div class='form-group'>
            <label for='budget'>Budget</label><br>
            <input type='text' class='form-control' name='budget' id='budget".$table[$i][0]."' value='".$table[$i][3]."'>
        </div>
        <div class='form-group'>
            <label for='data_inizio'>Data inizio</label><br>
            <input type='text' class='form-control' name='data_inizio' id='data_inizio".$table[$i][0]."' value='".$table[$i][4]."'>
        </div>
        <div class='form-group'>
            <label for='data_fine'>Data fine</label><br>
            <input type='text' class='form-control' name='data_fine' id='data_fine".$table[$i][0]."' value='".$table[$i][5]."'>
        </div>
        <div class='modal-footer'>
            <button type='button' class='btn btn-default' data-dismiss='modal'>Chiudi</button>
            <button type='submit' name='editButton' class='btn btn-primary' data-dismiss='modal'>Salva</button>
        </div>
    </form>
    Naturalmente i table[$i][0] etc. sono frutto di un for che scorre una tabella prelevata dal database.

    Come vedete il form richiama un altro script PHP, il seguente:
    Codice PHP:
    if(ISSET($_POST['editButton'])){    
        
    $id $_POST['id'];    
        
    $nome $_POST['nome'];
        
    $descrizione $_POST['descrizione'];
        
    $budget $_POST['budget'];
        
    $data_inizio $_POST['data_inizio'];
        
    $data_fine $_POST['data_fine'];
            
        
    // Aggiorno i dati nel database
        
    $pm->updateNome($id$nome);
        
    $pm->updateDescrizione($id$descrizione);
        
    $pm->updateBudget($id$budget);
        
    $pm->updateDataInizio($id$data_inizio);
        
    $pm->updateDataFine($id$data_fine);

    Questa operazione però non va a buon fine. Ho provato a creare il form stesso nella pagina di quest'ultimo script php e funziona. Non capisco perchè invece richiamando lo script da quella form non funziona.

    Qualche consiglio?

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    un punto di partenza sarebbe sapere che errore da, se ne da, e debuggare per capire se POST è valorizzato correttamente quando arriva allo script

  3. #3
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Quote Originariamente inviata da clasku Visualizza il messaggio
    un punto di partenza sarebbe sapere che errore da, se ne da, e debuggare per capire se POST è valorizzato correttamente quando arriva allo script
    Non so come capire che errori mi da. Come posso fare? Lo sto studiando ora e questo codice è per un progetto universitario. Non ho molta esperienza. Qualche consiglio?

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    prima cosa, inserisci un var_dump($_POST) all'inizio del codice che riceve i dati del form e verifica che i dati siano quelli che ti aspetti
    seconda cosa, metti degli echo a schermo nei vari passaggi salienti del codice che riceve il form (ad esempio, come prima cosa dopo che entri in "if(isset($_POST...)", per valutare che ci entri realmente)

  5. #5
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Ho inserito sia il var_dump sia un echo all'interno dell'if. Non stampa nulla. E' possibile che il path dell'action sia errato?

    Le directory sono così organizzate:

    subsystem:
    HomePM.php --> è la pagina principale

    control:
    viewVisualizzaProgetti.php --> primo script (genera la tabella) e nella form di modifica dei dati richiama l'altro script (vedi sotto)
    viewSelezioneProgetto.php

    Io nella form che richiama lo script ho inserito
    Codice PHP:
    <form method='POST' action='../control/viewSelezioneProgetto.php' 
    Forse è sbagliato il path, però provando con altri percorsi non stampa comunque niente

  6. #6
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Ho risolto in questo modo: la form richiama una funzione ajax che preleva i dati dalla form e li invia alla pagina php 'viewSelezioneProgetto'. Funziona l'update finalmente. L'unico inconveniente è che si freeza lo schermo e non si aggiorna da solo.
    La funzione è questa (vi copio anche quell'altra funzione che aggiorna la tabella perchè a quanto ho capito il problema è legato al fatto di eseguire una funzione dopo l'altra):

    Codice PHP:
    function viewdata(){

        $.
    ajax({

            
    type"GET",

            
    url"../control/viewVisualizzaProgetti.php"

        
    }).done(function(data) {

            $(
    '#viewProgetti').html(data);

        });

    }



    function 
    updatedata(str){

        var 
    id str;

        var 
    nome = $('#nome'+str).val();

        var 
    desc = $('#descrizione'+str).val();

        var 
    budget = $('#budget'+str).val();

        var 
    data_inizio = $('#data_inizio'+str).val();

        var 
    data_fine = $('#data_fine'+str).val();

        

        var 
    dati ="nome="+nome+"&desc="+desc+"&budget="+budget+"&data_inizio="+data_inizio+"&data_fine="+data_fine;


        $.
    ajax({

            
    type"POST",

            
    url"../control/viewSelezioneProgetto.php?id="+id,

            
    datadati

        
    }).done(function(data) {

            
    viewdata();

        });


    Qualcuno sa come risolvere il 'freeze'?

    [EDIT]
    Risolto, la modal rimaneva aperta. Ho aggiunto i seguenti comandi per rimuoverla dopo la chiamata ajax.

    Codice PHP:
    $('#editModal').modal('hide');
    $(
    'body').removeClass('modal-open');
    $(
    '.modal-backdrop').remove(); 
    Ultima modifica di goatboy; 13-12-2015 a 15:12

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.