I am having a little problem and I hope that someone can help me out:
So, I am trying to sort images and save the order in the DB, I can set the new order with JS
and send it with AJAX
to the controller and then to the model, this last one doesn't give any error or so, but for some reason is not saving the order, maybe someone here could see what I am not x), so here is the code (NOTE: I just put the code for sorting images and skipped the main classes just leaving the functions, to make it clear and not showing unnecessary things, however if you need more details, please let me know (= )
Thanks in advance (=.
JS
for(var i = 0; i < $('#desul li').length; i++)
{
almacenarOrdenId[i] = event.target.children[i].id;
ordenItem[i] = i+1;
}
$('#btnDesignPortSave').click(function(){
for(var i = 0; i < $('#desul li').length; i++)
{
var actualizarOrden = new FormData();
actualizarOrden.append("actualizarOrdenGaleria", almacenarOrdenId[i]);
actualizarOrden.append("actualizarOrdenItem", ordenItem[i]);
$.ajax({
url:"PATH TO AJAX FILE",
method: "POST",
data: actualizarOrden,
cache: false,
contentType: false,
processData: false,
success: function(respuesta)
{
$('#desport ul').html(respuesta);
swal("Order updated", {
buttons: false,
timer: 2000,
}).then(
function(){
window.location = "designPortfolio";
}
);
}
})//ajax
}//for
})//Btn
AJAX FILE
public $actualizarOrdenGaleria;
public $actualizarOrdenItem;
public function actualizarDordenAjax()
{
$datos = array("ordenGaleria" => $this -> actualizarOrdenGaleria,
"ordenItem" => $this -> actualizarOrdenItem);
$respuesta = gestorDgaleriaController::actualizarOrdenController($datos);
echo $respuesta;
}
///////////////////////////////////////////////
if(isset($POST["actualizarOrdenGaleria"]))
{
$c = new Ajax();
$c -> actualizarOrdenGaleria = $_POST["actualizarOrdenGaleria"];
$c -> actualizarOrdenItem = $_POST["actualizarOrdenItem"];
$c -> actualizarDordenAjax();
}
PHP
////CONTROLLER
public function actualizarOrdenController($datos)
{
gestorDgaleriaModel::actualizarOrdenModel($datos,"DB TABLE");
$respuesta = gestorDgaleriaModel::seleccionarOrdenModel("DB TABLE");
foreach($respuesta as $row => $item)
{
echo'<li id="'.$item["id"].'" class="bloqueDGaleria">
<i class="fa fa-times delbtn portdesdel" aria-hidden="true" ruta="'.$item["ruta"].'"></i>
<a data-fancybox="portdes" href="'.substr($item["ruta"],6).'">
<img src="'.substr($item["ruta"],6).'" class="handleDImg"/>
</a>
</li>';
}
}
////MODEL
public function actualizarOrdenModel($datos,$tabla)
{
$stmt = conexion::conectar()->prepare("UPDATE $tabla SET orden = :orden WHERE id = :id");
$stmt -> bindParam(":orden", $datos["ordenItem"], PDO::PARAM_INT);
$stmt -> bindParam(":id", $datos["ordenGaleria"], PDO::PARAM_INT);
if($stmt->execute())
{
return "ok";
}
else
{
return "error";
}
$stmt -> close();
}
public function seleccionarOrdenModel($tabla)
{
$stmt = conexion::conectar()-> prepare("SELECT id, ruta FROM $tabla ORDER BY orden ASC");
$stmt->execute();
return $stmt->fecthAll();
$stmt->close();
}