Итак, у меня есть 2 коробки. Слева у меня есть список элементов, извлекаемых из базы данных, которые я могу перетаскивать вправо. Это прекрасно работает. Я не могу понять, как заставить его разместить данные для списка справа, и я думаю, что попробовал каждый пример, который Google может предложить на этой неделе.
Когда я делаю print_r ($ _ POST); на странице, которой это соответствует, я получаю Array (), в котором ничего нет. Кажется, он не захватывает идентификаторы и не сериализует их.
Кто-нибудь имеет опыт с этим увидеть что-то, что мне не хватает?
<script>
$(function() {
$( "ul.droptrue" ).sortable({
connectWith: "ul"});
$( "ul.dropfalse" ).sortable({
connectWith: "ul",
dropOnEmpty: true
});
$( "#sortable1, #sortable2" ).disableSelection();
});
$( "#sortable2" ).sortable({
axis: 'y',
handle : '.handle',
update: function (event, ui) {
var data = $(this).sortable('serialize');
console.log(data);
// POST to server using $.post or $.ajax
$.ajax({
data: data,
type: 'POST',
url: 'setlists-edit-process.php'
});
}
});
</script>
<ul id="sortable1" class="droptrue">
<?php
$_GET['setlist_id'];
$sql = "SELECT material_id, material_name FROM material WHERE user_id=$session_id";
$result = mysqli_query($conn, $sql);
if (!$result) {
printf("Error: %s\n", mysqli_error($conn));
exit();
}
while($row = mysqli_fetch_array($result))
{
echo "<li id=" . $row['material_id'] . ">" . $row['material_id'] . " | " . $row['material_name'] . "</li>";
}
?>
</ul>
<ul id="sortable2" class="dropfalse">
</ul>
Заменить это:
while($row = mysqli_fetch_array($result))
{
echo "<li id=" . $row['material_id'] . ">" . $row['material_id'] . " | " . $row['material_name'] . "</li>";
}
с:
while($row = mysqli_fetch_array($result))
{
echo '<li id="material_' . $row['material_id'] . '">' . $row['material_id'] . " | " . $row['material_name'] . "</li>";
}
Сортируемый ожидает, что идентификатор будет в формате setname_number
,
Кроме того, ваш код выводится в формате id=abc
(без кавычек), а скорее так и должно быть id="abc"
с окружающими цитатами.
Других решений пока нет …