Hola!
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) ) {
// ...
}
}
}
Puesto que los formularios funcionan perfectamente por separado, no vi la necesidad de hartar la vista incluyendo el código dentro de los
if. En este sentido, imagino que el problema está en lo demás. Pero todo se ve bien... ¿no?