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

    Come gestire vari form con un unico script?

    Ciao,
    ho una pagina in cui ci sono vari form. Uno serve per inviare tutti i dati inseriti nella pagina mentre gli altri servono per inivare dati a delle tabelle mysql senza ricaricare la pagina. Quindi per riassumere, compilo tutti i form presenti nella pagina e poi con il submit generale invio tutto al DB.

    Non sapendo praticamente nulla di ajax, jquery ho provato questo scriptino che processa i dati del form senza dover ricaricare la pagina.

    codice:
    <script type="text/javascript">    $(document).ready(function(){
            $("#myform").validate({
                debug: false,
                rules: {
                    name: "required",
                    email: {
                        required: true,
                        email: true
                    }
                },
                messages: {
                    name: "Please let us know who you are.",
                    email: "A valid email will help us get in touch with you.",
                },
                submitHandler: function(form) {
                    // do other stuff for a valid form
                    $.post('process.php', $("#myform").serialize(), function(data) {
                        $('#results').html(data);
                    });
                }
            });
        });
        </script>

    Dato che l'html non permette l'utilizzo di form annidati, ho dovuto usare uno stratagemma usando la funzione "form" dell'html5. Quindi nell'header della pagina utilizzo l'id per identificare i vari form presenti
    codice:
    <form id="frmAddProduct" action="" method="post" name="frmAddProduct"></form>
    <form id="myform" name="myform" action="" method="post"></form>

    poi all'interno della pagina

    codice:
    <input type="text" name="comune" id="comune" value="" placeholder="" form="myform">  
    
    <button class="btn btn-info" id="btnAddProduct" type="button" onClick="checkAddProductForm();" form="frmAddProduct">
    il problema: form con "form=myform" ne ho parecchi, quindi lo script che ho postato prima, non è in grado di identificare da quale form sto inviando i dati per poi inserirli nella tabella corretta.

    Come posso risolvere questo problema?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Ma perché tutti questi form? non potresti fare un unico form con input diversi? poi lato php in quale tabella inserire i dati presi.

  3. #3
    No, prova a pensare una pagina con vari div box con dei dati da selezionare da una select. Nel caso in cui non è presente un dato nella select, c'è un input che inserisce il dato nella tabella mysql senza dover ricaricare la pagina. Quando hai compilato tutti i box, il form generale si occupa di inserire tutti i dati nella tabella principale

  4. #4
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Potresti aggiungere dinamicamente un input e un bottone sotto il select, al click sul bottone tramite ajax lo aggiungi nel db e tramite jquery aggiungi la option nuova, che ne dici?

  5. #5
    lukezz, è quello che fa lo script che ho postato all'inizio. Il problema è che non so come gestire più di un form.
    $("#myform").validate({


  6. #6
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Intanto non con un id, perché l'id è univoco, potresti dare una classe uguale per tutti i form, poi fai una cosa del tipo:

    $(.classe).submit( function() {
    $(this).serialize()
    });

  7. #7
    Potresti spiegarmi meglio il discorso delle classi? cioè so bene cosa sono, ma non ho capito come utilizzarle nello script in modo che mi processi solo l'input in cui ho inviato i dati. Infatti così com'è con un print_r() mi ritrovo un array con dentro tutti i nomi degli input...sono un pò in confusione

  8. #8
    Utente di HTML.it L'avatar di lukezz
    Registrato dal
    Feb 2010
    Messaggi
    494
    Ti ho appena fatto un esempio

    codice:
    $(document).ready(function () {
        $(document).on('submit', '.myforms', function () {
            var querystring = $(this).serialize();
            $.ajax({
                url: 'process.php',
                type: "POST",
                data: querystring,
                success: function(result) {
                    $('.selectBox').html(data);
                }
            });
            return false
        });
    });
    Invece di dare l'id ai forms (myform, ecc..) dai solo la classe ad esempio class="myforms". Questo lo devi fare per tutti i forms. Dopo di che processi con ajax e aggiungi il nuovo prodotto alla select.

  9. #9
    Ah ok...forse sto iniziando a capire
    Domattina farò delle prove. Grazie mille lukezz!

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.