PHP enviando un formulario con múltiples botones de envío usando jQuery .post ()

Tengo el siguiente código HTML:

<input type="text" name="the_input" value="">

Seguido por este JS:

 $('#the-form').bind('submit', submitForm); function submitForm(evt) { jQuery.post( $(this).attr('action'), $(this).serialize(), function(data) { $('#result').empty().append(data).slideDown(); }); evt.preventDefault(); } 

También tengo un script PHP que recibe el valor $ _POST de la entrada al enviar y ejecuta una condición para probar en qué botón de envío se hizo clic.

Me gusta esto:

 $input = $_POST['the_input']; $eating = $_POST['eat_something']; if ( $eating == 'TRUE' ) { // Do some eating... } else { // Don't you dare... } 

Si no uso la función jQuery.post (), se publicarán los valores de envío desde el botón. Sin embargo, por alguna razón, no puedo pasar el valor del botón a PHP $ _POST con la función jQuery.post (). Si no uso jQuery.post (), el resultado no se adjunta al área de texto sino en un formato de texto en una página separada, como un documento. También intenté llamar a la función de envío con el botón $('button[type=submit]').bind('submit', submitForm); pero esto tampoco soluciona mi problema.

Gracias de antemano por su ayuda.

Olvidas la cita de signle y ) en la entrada de nombre.

  

y para obtener el valor del botón de formulario presionado, debe agregarlo manualmente para serializar.

 $form.serialize() + "&submit="+ $('button').attr("value") 

Ejemplo

  

Completar el código probado

      StackOverFlow     

La respuesta más simple sería:

 

Por supuesto, esto no dará exactamente lo que estás buscando.

También puedes hacer algo como esto:

 
$('#the-form button').bind('click', function(){ jQuery.post($('#the-form').attr('action'), { the_input: $('#theInput').val(), eat_something: $(this).attr('data-value') }, function(data) { $('#result').empty().append(data).slideDown() }, 'json' });

Cambie los botones a esto (cambie con los nombres de sus formularios) ..

    

La función Javascript y PHP están bien.

¡Gracias!

@León