I have the following form in a modal:
<div class="modal fade" id="absenceModal" role="dialog" aria-hidden="true">
<div class="modal-dialog modal-md" role="document">
<form role="form" method="post" id="formAbsence">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"><b>Absence</b></h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
</div>
<div class="modal-body">
<div class="form-row">
<div class="col-md-5 mb-3">
<input class="form-control" type="text" name="date" id="date" readonly>
<input class="form-control" type="number" name="no_empleado" id="no_empleado" readonly>
</div>
</div>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary back-to-first-modal">BACK</button>
<button type="submit" class="btn btn-primary">POST</button>
</div>
</div>
</form>
</div>
</div>
I have this JavaScript code:
$('#formAbsence').submit(function(event)
{
event.preventDefault();
//var formData = $(this).serialize();
var date = $('#date').val();
var no_empleado = $('#no_empleado').val();
$.ajax(
{
type: 'POST',
url: 'controller/absence.controller.php',
data:
{
action: 'create',
date: date,
no_empleado: no_empleado
},
success: function(response)
{
alert(response);
$('#absenceModal').modal('hide');
}
});
});
And this is my file "absence.controller.php":
<?php
class AbsenceController
{
static public function data()
{
$resp = array();
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (isset($_POST["action"]) && $_POST["action"] == "create")
{
$resp = self::ctrCreate();
}
else
{
$resp["error"] = "Nope.";
}
}
else
{
$resp["error"] = "Not valid.";
}
echo json_encode($resp);
}
static public function ctrCreate()
{
$resp = array();
if (isset($_POST["date"]) && isset($_POST["no_empleado"]))
{
$date = $_POST["date"];
$no_empleado = $_POST["no_empleado"];
$reg = date("Y-m-d H:i:s");
$num = 1;
$conn = new mysqli("localhost", "bd", "1234", "bd_abscence");
$sql = "INSERT INTO abscence (date, no_empleado, reg, capt) VALUES ('$date', '$no_empleado','$reg', '$num')";
}
else
{
$resp["error"] = "Error." . $conn->error;
}
$conn->close();
}
echo json_encode($resp);
}
}
AbsenceController::data();
?>
This way everything works correctly. The insertion into the database is executed without problem. The problem comes when I want to give the code a more oriented approach to the MVC pattern. My file "absence.controller.php" would look like this:
<?php
require_once 'model/absence.model.php';
class AbsenceController
{
static public function data()
{
$resp = array();
if ($_SERVER["REQUEST_METHOD"] == "POST")
{
if (isset($_POST["action"]) && $_POST["action"] == "create")
{
$date = $_POST["date"];
$no_empleado = $_POST["no_empleado"];
$resp = AbsenceModel::createAbsence($date, $no_empleado);
}
else
{
$resp["error"] = "Nope.";
}
}
else
{
$resp["error"] = "Not valid.";
}
echo json_encode($resp);
}
}
AbsenceController::data();
?>
And my file "absence.model.php" would look like this:
<?php
class AbsenceModel
{
public static function createAbsence($date, $no_empleado)
{
$resp = array();
$reg = date("Y-m-d H:i:s");
$num = 1;
$conn = new mysqli("localhost", "bd", "1234", "bd_abscence");
$sql = "INSERT INTO absence (date, no_empleado, reg, capt) VALUES ('$date', '$no_empleado','$reg', '$num')";
// Cerrar la conexión a la base de datos
$conexion->close();
return $respuesta;
}
}
?>
When trying with the MVC approach, it doesn't work. What am I doing wrong?
Via Active questions tagged javascript - Stack Overflow https://ift.tt/bvVHIE5
Comments
Post a Comment