La idea: queremos 2 formularios en un HTML, y un archivo process.php que procese los valores de los formularios.
El problema: los 2 formularios funcionan bien, por separado. Es decir, siempre y cuando el código del otro esté comentado. Pero si descomento los 2, ninguno funciona. Sale parsererror.
El siguiente script aparece 2 veces donde están los formularios, uno para cada <form>; la única diferencia es el nombre del selector:
Código Javascript:
Ver original
$("#forma_1").on("submit", function(e) { e.preventDefault(); var datos = $("#forma_1").serializeArray(); $.ajax({ type: "POST", dataType: "json", url: "process.php", data: datos, beforeSend: function() { // ... }, success: function(response) { // ... }, complete: function(jqXHR, estado) { // ... } }); });
He aquí el script dentro del process.php:
Código PHP:
// Aquí van de una vez todas las variables de los inputs
$nombre = $_POST["nombre"];
$ciudad = $_POST["ciudad"];
$cliente = $_POST["cliente"];
$articulo = $_POST["articulo"];
$forma = $_POST["forma"]; // Utilizo este input hidden para identificar al formulario
$conexion = new mysqli("localhost", "root", "", "claves_foraneas2");
$query1 = "INSERT...";
$query2 = "INSERT...";
$query3 = "SELECT...";
$query4 = "SELECT...";
if ($forma == "forma_1") {
if ( $conexion->query($query1) ) {
if ( $resultado = $conexion->query($query3) ) {
// ...
}
}
}
else if ($forma == "forma_2") {
if ( $conexion->query($query2) ) {
if ( $resultado = $conexion->query($query4) ) {
// ...
}
}
}