Hallo,
mittlerweile versuche ich schon seit mehreren Stunden verzweifelt eine
geänderte Sortierung von Datensätzen in meine MySQL-DB zu hinterlegen.
Ich habe mittels jQueryUI die ausgegebenen Datensätze so zurechtgebastelt,
dass ich sie untereinander verschieben (umsortieren) kann. Nun versuche ich mit
Hilfe von AJAX und PHP ein Script zu erstellen, dass die Daten gespeichert bleiben,
welches jedoch einfach nicht funktionieren mag.
Im Bereich Webentwicklung bin ich noch recht neu - deshalb entschuldigt bitte,
wenn es ein nur kleines Problem ist - eine Lösung kann ich jedoch trotzdem
leider nicht finden. Ich schicke mal die entsprechenden Code-Teile mit...
index.php (Ausgabe der Datensätze):
sortable.js:
set_order.php:
jQuery und JS sowie CSS hab ich natürlich in der index.php im head-Bereich bereits eingefügt.
Die Datenbankanbindung funktioniert auch, da mir die Datensätze ausgegeben werden.
Allerdings werden diese eben nur leider nicht umsortiert und gespeichert.
Ich hoffe, mir kann einer Helfen ;-)
Grüße, David
mittlerweile versuche ich schon seit mehreren Stunden verzweifelt eine
geänderte Sortierung von Datensätzen in meine MySQL-DB zu hinterlegen.
Ich habe mittels jQueryUI die ausgegebenen Datensätze so zurechtgebastelt,
dass ich sie untereinander verschieben (umsortieren) kann. Nun versuche ich mit
Hilfe von AJAX und PHP ein Script zu erstellen, dass die Daten gespeichert bleiben,
welches jedoch einfach nicht funktionieren mag.
Im Bereich Webentwicklung bin ich noch recht neu - deshalb entschuldigt bitte,
wenn es ein nur kleines Problem ist - eine Lösung kann ich jedoch trotzdem
leider nicht finden. Ich schicke mal die entsprechenden Code-Teile mit...
index.php (Ausgabe der Datensätze):
PHP:
<?php include('config.php'); ?>
<?php
$abfrage = "SELECT * FROM erfassung ORDER BY item_order ASC";
$ergebnis = mysqli_query($mysqli, $abfrage);
?>
<div id="content">
<div class="headbox">
<h2>September 2015</h2>
</div>
<div class="sortable"> <?php
while($row = mysqli_fetch_object($ergebnis))
{
?>
<div class="box">
<?php echo $row->bemerkung; ?>
<?php if ($row->betragC == 0) $row->betragC = "00" ?>
<div class="betrag">
<?php echo $row->betragE .",". $row->betragC ."€"; ?><br>
<?php echo $row->datum . "<br>"; ?> <!-- Ausgaben -->
</div>
</div>
<?php } ?> <br> <!-- Optimierungspotenzial per CSS! -->
</div> <!-- Ende: content -->
</div>
</div>
</div>
sortable.js:
Code:
$(function() {
$('#sortable').sortable({
axis: 'y',
opacity: 0.7,
handle: 'span',
update: function(event, ui) {
var list_sortable = $(this).sortable('toArray').toString();
// change order in the database using Ajax
$.ajax({
url: 'set_order.php',
type: 'POST',
data: {list_order:list_sortable},
success: function(data) {
//finished
}
});
}
}); // fin sortable
});
set_order.php:
Code:
<?php
// including the config file
include('config_pdo.php');
$pdo = connect();
// get the list of items id separated by cama (,)
$list_order = $_POST['list_order'];
// convert the string list to an array
$list = explode(',' , $list_order);
$i = 1 ;
foreach($list as $id) {
try {
$sql = 'UPDATE erfassung SET item_order = :item_order WHERE id = :id' ;
$query = $pdo->prepare($sql);
$query->bindParam(':item_order', $i, PDO::PARAM_INT);
$query->bindParam(':id', $id, PDO::PARAM_INT);
$query->execute();
} catch (PDOException $e) {
echo 'PDOException : '. $e->getMessage();
}
$i++ ;
}
?>
jQuery und JS sowie CSS hab ich natürlich in der index.php im head-Bereich bereits eingefügt.
Die Datenbankanbindung funktioniert auch, da mir die Datensätze ausgegeben werden.
Allerdings werden diese eben nur leider nicht umsortiert und gespeichert.
Ich hoffe, mir kann einer Helfen ;-)
Grüße, David