Здравейте и за много години!
Използвам jQuery UI Sortable, но новините в home page-a са ми сортиране ORDER by `sort` DESC, така че и последната добавена да излиза първа. Но в админ панела с този код по-долу последната добавена излиза последна поради ORDER by `sort` ASC. Проблемът е, че когато го направя DESC, кода не работи както искам. Размествам ги, но те се връщат на предходните позиции, но след няколко размествания се разместват и така. Трябва ми последната да излиза първа в админ панела, а не обратното, защото мисля да правя "Load more data" и с това сортиране ASC, няма да се получат нещата там, защото последната новина ще бъде някъде долу. Как може да се справя с това? Благодаря предварително!
[js]<script src="../js/jquery-ui.min.js"></script>
<script>
jQuery(document).ready(function() {
jQuery(function() {
var path = "includes/drag_and_drop_news.php";
jQuery("#sortContent1 ul").sortable({
opacity: 0.6,
cursor: 'move',
update: function() {
var order = jQuery(this).sortable("serialize") + '&action=updateDbSortRecord';
jQuery.post(path, order, function(theResponse) {
console.log(theResponse);
});
}
});
});
});
</script>[/js]
Използвам jQuery UI Sortable, но новините в home page-a са ми сортиране ORDER by `sort` DESC, така че и последната добавена да излиза първа. Но в админ панела с този код по-долу последната добавена излиза последна поради ORDER by `sort` ASC. Проблемът е, че когато го направя DESC, кода не работи както искам. Размествам ги, но те се връщат на предходните позиции, но след няколко размествания се разместват и така. Трябва ми последната да излиза първа в админ панела, а не обратното, защото мисля да правя "Load more data" и с това сортиране ASC, няма да се получат нещата там, защото последната новина ще бъде някъде долу. Как може да се справя с това? Благодаря предварително!
PHP:
<?php
$sql = "SELECT * FROM `news` ORDER BY `sort` ASC";
$stmt = $dbh->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll();
?>
<style>
#sortContent1 { margin-bottom: -8px; width: 100% }
#sortContent1 li { list-style: none; margin: 0 0 4px 0; padding: 10px; background-color: #e95420; border-color: #e95420; border-radius: 6px; color: #fff; cursor: move }
#sortContent1 li a { color: #fff }
</style>
<div class="container">
<div class="row">
<div class="col-xs-12 col-sm-12">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">Новини</h3>
</div>
<div class="panel-body">
<input type="hidden" id="path" value="" />
<div id="sortContent1">
<ul>
<?php
if ($result && count($result) > 0) {
foreach ($result as $row_news) {
?>
<li id="recordsArray_<?php echo $row_news['id']; ?>">
<?php echo $row_news['title']; ?>
<a href="news.php?edit-news=<?php echo $row_news['id']; ?>"><span class="glyphicon glyphicon-edit"></span></a>
<a href="news.php?delete-news=<?php echo $row_news['id']; ?>"><span class="glyphicon glyphicon-remove"></span></a>
</li>
<?php
}
?>
<?php
}
?>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
PHP:
<?php
include "../../config.php";
$action = $_POST['action'];
$updateRecordsArray = $_POST['recordsArray'];
if ($action == "updateDbSortRecord") {
$listingCounter = 1;
foreach ($updateRecordsArray as $recordIDValue) {
$sql = "UPDATE `news` SET sort = :listingCounter WHERE id = :recordIDValue";
$stmt = $dbh->prepare($sql);
$stmt->bindParam(':listingCounter', $listingCounter, PDO::PARAM_INT);
$stmt->bindParam(':recordIDValue', $recordIDValue, PDO::PARAM_INT);
$stmt->execute();
$listingCounter = $listingCounter + 1;
}
}
?>
[js]<script src="../js/jquery-ui.min.js"></script>
<script>
jQuery(document).ready(function() {
jQuery(function() {
var path = "includes/drag_and_drop_news.php";
jQuery("#sortContent1 ul").sortable({
opacity: 0.6,
cursor: 'move',
update: function() {
var order = jQuery(this).sortable("serialize") + '&action=updateDbSortRecord';
jQuery.post(path, order, function(theResponse) {
console.log(theResponse);
});
}
});
});
});
</script>[/js]