Проблема с сохранением порядка отсортированных изображений в базе данных - PullRequest
0 голосов
/ 06 сентября 2018

У меня небольшая проблема, и я надеюсь, что кто-то может мне помочь:

Итак, я пытаюсь отсортировать изображения и сохранить заказ в БД, я могу установить новый порядок с помощью JS и отправьте его с AJAX на контроллер, а затем на модель, последняя не дает никакой ошибки или около того, но по какой-то причине не сохраняет заказ, возможно, кто-то здесь мог увидеть, что я не х), вот код (ПРИМЕЧАНИЕ: я просто поместил код для сортировки изображений и пропустил основные классы, просто оставив функции, чтобы прояснить и не показывать ненужные вещи, однако, если вам нужно больше деталей, пожалуйста, дайте мне знать (=)

Заранее спасибо (=.

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...