Aquí está mi código
<form method="post" role="form" id="form" enctype="multipart/form-data" autocomplete="off"> <input type="submit" id="save" name="save" value="Simpan Data Client" class="btn" style="font-size:0.7em; letter-spacing:1px; color:#666666" /> //For save <input type="submit" id="delete" name="delete" value="Delete Client" class="btn-delete" style="font-size:0.7em; letter-spacing:1px; color:#666666; padding:8px 15px" /> //For Delete </form> <script type="text/javascript"> $("#form").on("submit",function (e) { e.preventDefault(); var formData = new FormData($(this)[0]); $.ajax( { url:'Master/Database/Client/RunClient.php', type: 'POST', data: formData, contentType: false, enctype: 'multipart/form-data', processData: false, beforeSend:function() { document.getElementById("loading").style.display = ""; }, complete:function() { //document.getElementById("loading").style.display = "none"; }, success:function(result) { document.getElementById("info").innerHTML = result; var n = result.search("error"); if(n < 0) /*document.getElementById("form").reset();*/ $(".input").val(''); } }); }); </script>Puedo obtener todos los datos desde el interior de mi formulario, excepto desde el tipo de entrada que hago. No puedo usar isset($_POST["save"]) e isset($_POST["delete"]) en mi RunClient.php
Cree una función separada para un envío y pase el "tipo de envío" según el botón en el que se haga clic;
$('#save').click(function() { submitForm('save'); }); $('#delete').click(function() { submitForm('delete'); }); function submitForm(submittype) { var formData = new FormData(); //push your form data to formData and add the submittype formData['type'] = submittype }en tu archivo php
$submittype = $_POST['type']; // 'save' or 'delete' if($submittype == 'save') { //do save action } if($submittype == 'delete') { //do delete action }Lo uso para evitar enviar entradas y cambiar por botones.
<button type="button" id="save">SUBMIT</button> //For save <script type="text/javascript"> $("#save").on("click",function (e) { }); </script>Entonces, si alguien desactiva el formulario javscript, no se enviará.
Y puedes enviar los datos así:
data: { foo: 'var' foo2: 5 },EDITAR. Lo siento, no entendí bien tu pregunta. Simplemente controle con javascript en qué botón se hace clic y asigne un valor con un campo oculto.
'$("#formulario").on("enviar",función (e)' reemplaza la función con
$("#guardar").click(función() {
});
$("#eliminar").click(función() {
});