У меня есть вопрос, и я надеюсь, что кто-нибудь может мне помочь.
Я использую jquery dropable. То, что я хочу сделать, это когда я меняю положение элемента, я хочу записать индекс в свою базу данных на основе этого примера:
http://linssen.me/entry/extending-the-jquery-sortable-with-ajax-mysql/
Все работает нормально, но когда я хочу записать в свою базу данных, я получаю сообщение об ошибке.
Это вот мой HTML и JQuery выглядит так:
<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Sortable - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"> </script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.7.1/jquery-ui.min.js"></script>
<style>
#sortable { list-style-type: none; margin: 0; padding: 0; width: 60%; }
#sortable li { margin: 0 3px 3px 3px; padding: 0.4em; padding-left: 1.5em; font-size: 1.4em; height: 18px; }
#sortable li span { position: absolute; margin-left: -1.3em; }
</style>
<script type="text/javascript">
// When the document is ready set up our sortable with it's inherant function(s)
$(document).ready(function() {
$("#test-list").sortable({
handle : '.handle',
update : function () {
var order = $('#test-list').sortable('serialize');
$("#info").load("process-sortable.php?"+order);
}
});
});
</script>
</head>
<body>
<pre>
<div id="info">Waiting for update</div>
</pre>
<ul id="test-list">
<?php
mysql_connect('localhost','root','root');
mysql_select_db('12105');
$query = 'SELECT * FROM buitenladder1 WHERE parent =37';
$result = mysql_query($query);
while ($name_row = mysql_fetch_array($result)){?>
<li id="listItem_<?echo $name_row['id']?>">
<img src="arrow.png" alt="move" width="16" height="16" class="handle" />
<strong>Item 1 </strong>with a link to <a href="http://www.google.co.uk/" rel="nofollow">Google</a>
</li>
<?}?>
</ul>
<form action="process-sortable.php" method="post" name="sortables">
<input type="hidden" name="test-log" id="test-log" />
</form>
</body>
</html>
Сортируемые функции загружают этот скрипт php:
<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "12105";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
foreach ($_GET['listItem'] as $position => $item)
{
$sql[] = "UPDATE `buitenladder1` SET `b_index` = $position WHERE `id` =$item";
}
if ($conn->query($sql) === TRUE) {
header('Location: ' . $_SERVER['HTTP_REFERER']);
/* echo "New record created successfully";*/
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close();
?>
Если я пишу $ sql без ‘[]’, то это работает, но он записывает только один элемент в моей базе данных. Когда я использую «[]», я получаю: «Массив ошибок»
Надеюсь, кто-нибудь может мне помочь. Я новичок в ajax и mysql.
Задача ещё не решена.
Других решений пока нет …