2017-08-07 1 views
0

Ich habe ein Formular, das Cloneya verwendet, ein jquery-Plugin, das die einfache Verwaltung von Select- und Inputbox-Clonen ermöglicht.

mein HTML-Formular ist wie:

<div class="spacer-b10 colm colm2"> 
    <label class="prepend-icon"><input type="text" name="acc_code[1]" id="acc_code" 
    class="gui-input" placeholder="Code" /> </label> 
    </div> 

    <div class="spacer-b10 colm colm2"> 
    <label class="field select"><select id="acc_name" name="acc_name[1]" style= 
    "font-size:12x"> 
     <option value=""> 
     Account 
     </option> 

     <option value="Administrator"> 
     Administrator 
     </option> 

     <option value="Read Only"> 
     Read Only 
     </option> 
    </select> </label> 
    </div> 

Die cloneya Plugin Elementnamen automatisch erzeugt.

Dann habe ich folgendes Ajax-Skript:

jQuery(document).ready(function($) { 

      $('#account2').submit(function(e) { 

       e.preventDefault(); // Prevent Default Submission 

       $.ajax({ 
         url: 'submit.php', 
         type: 'POST', 
         data: $(this).serialize() // serialize the form data 
        }) 
        .done(function(data) { 
         $('#form-content').fadeOut('slow', function() { 
          $('#form-content').fadeIn('slow').html(data); 
         }); 
        }) 
        .fail(function() { 
         alert('Ajax Submit Failed ...'); 
        }); 
      }); 

In meiner Datei check.php ich sicherstellen möchten alle _POST ob Array in Form $ zu bekommen oder nicht, und wenn diese Arrays sind, um sicherzustellen, Alle geklonten Elemente durchlaufen (zum Einfügen der DB).

Was wäre die beste Methode, dies zu tun?

Antwort

0

Sie können serializeArray() verwenden und das Formular als JSON.stringify(paramsToSend) senden:

var paramsToSend = {}; 
 
paramsToSend['form'] = $('#account2').serializeArray(); 
 

 
$.ajax({ 
 
    url: 'submit.php', 
 
    type: 'POST', 
 
    data: { 
 
     params: JSON.stringify(paramsToSend) 
 
    }, 
 
    }) 
 
    .done(function(data) { 
 
    $('#form-content').fadeOut('slow', function() { 
 
     $('#form-content').fadeIn('slow').html(data); 
 
    }); 
 
    }) 
 
    .fail(function() { 
 
    alert('Ajax Submit Failed ...'); 
 
    }); 
 
});

In Ihrem serverseitigen, submit.php können Sie:

$parameters = json_decode($_POST['params']); 

Um sie in Array zu konvertieren und dieses Array inzu haben, können Sie:

+0

Danke, ich werde dies so schnell wie möglich testen –

Verwandte Themen