Hallo,
ich verstehe Ajax nicht wirklich. Mein Script (habe ich nicht selber geschrieben) sieht so aus
JavaScript
$(document).ready(function(){
function slideout() {
setTimeout(function() {
$("#debugMess").slideUp("slow", function () {
});
}, 2000);}
$("#debugMess").hide();
$(function() {
$("#customersList").sortable({ placeholder: "customersListHighlight", opacity: 0.5, cursor: 'move', update: function() {
var order = $(this).sortable("serialize") + '&action=updateCustomerPos';
$.post("UpdatePos.php", order, function(theResponse) {
$("#debugMess").html(theResponse);
$("#debugMess").slideDown('slow');
slideout();
});
}
});
$( "#customersList" ).disableSelection();
});
});
Alles anzeigen
Meine Daten lese ich so aus
PHP
$showDebugMessage = true;
$stmt = $mysqli->prepare("SELECT id, name FROM Test ORDER BY pos ASC");
$stmt->execute();
$stmt->bind_result($id, $name);
$stmt->store_result();
echo "<div id="wrapper">\n";
if($showDebugMessage) echo " <div id="debugMess"></div>\n";
echo "<div id="test">\n";
echo "<ul id="customersList">\n";
while($stmt->fetch()) {
echo " <li id="recArray_".$id."">\n";
echo " <div class="customerName">".$name."</div>\n";
echo " </li>\n";
}
echo " </ul>\n";
echo "</div>";
Alles anzeigen
die Update Datei hat folgenden Code
PHP
require("inc.zugangsdaten.php");
$action = $_POST['action'];
$updRecArray = $_POST['recArray'];
if($action == "updateCustomerPos")
{
$counter = 1;
foreach ($updRecArray as $recordIDValue)
{
if ($stmt = $mysqli->prepare("Update
Test SET
pos=?
WHERE id = ?"))
{
$pos = $counter;
$id = $_recordIDValue;
$stmt->bind_param("ss",
$pos,
$id
);
$stmt->execute();
}
else {
echo $mysqli -> error;
}
$counter++;
}
echo 'Position gespeichert';
echo '<pre>';
print_r($updRecArray);
echo '</pre>';
}
Alles anzeigen
Wenn ich nun ein Eintrag verschiebe klappt es auch, mein Firebug gibt mir folgende Meldung aus
das heißt für mich, dass das Update erfolgreich war. Allerdings lade ich die Seite neu oder schau in die Datenbank hat sich leider nichts getan. Fehlermeldungen erscheinen auch nicht. Das ganze Script habe ich von hier http://fluuux.de/2013/03/posit…per-drag-and-drop-andern/ seht ihr vielleicht den Fehler?