Ankündigung

Einklappen
Keine Ankündigung bisher.

jQuery sortable mit php+mysql

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • gec
    hat ein Thema erstellt jQuery sortable mit php+mysql.

    jQuery sortable mit php+mysql

    Hallo,

    ich hab jetzt schon viel gesucht, gefunden und es nicht am laufen bekommen.
    ich habe hier folgendes script welches das update nicht in der datenbank durchführt.

    Code:
    <script type="text/javascript">
      $(document).ready(function() {
        $("#cat-list").sortable({
          handle : '.handle',
          update : function () {
    		  var order = $('#cat-list').sortable('serialize');
      		$("#info").load("content/admin/admin.portfolio.cats.update.php?"+order);
          }
        });
    });
    </script>
    PHP-Code:
    $sql "SELECT * FROM `portfolio_cats` ORDER BY id ASC";
    $abfrageergebnis mysql_query$sql ); 
    PHP-Code:
        <pre> 
            <div id="info"></div> 
        </pre> 
    <ul id="cat-list">
     <?php 
         
    while ($datensatz mysql_fetch_array$abfrageergebnis )) {    
        echo
    '
            <li id="catID_' 
    .htmlspecialchars$datensatz['id'] ). '">
            <img src="images/icons/drag_arrow.png" alt="move" width="16" height="16" class="handle" />
            <strong>' 
    .htmlspecialchars$datensatz['cat'] ). '</strong>
            <a class="del" href="?sub=admin.portfolio.cats&get=del.entry&id=' 
    .htmlspecialchars$datensatz['id'] ). '" onclick="return confirm(\'' .htmlspecialchars$datensatz['cat'] ). ': Löschen?\');"><img src="images/icons/close_mouse.png"></a></li>';
        }
    ?>
    </ul>
    Die admin.portfolio.cats.update.php:

    PHP-Code:
    include '../../_config/config.inc.php';
    include 
    '../../_config/funktions.inc.php';

    foreach (
    $_GET['catID'] as $position => $item) :
        
    $sql[] = "UPDATE portfolio_cats SET id = '$position' WHERE id = '$item'";
    endforeach;

    print_r($sql); 
    und das macht es, nur nicht in der datenbank. warum auch immer.
    PHP-Code:
    Array
    (
        [
    0] => UPDATE portfolio_cats SET id '0' WHERE id '1'
        
    [1] => UPDATE portfolio_cats SET id '1' WHERE id '2'
        
    [2] => UPDATE portfolio_cats SET id '2' WHERE id '0'
        
    [3] => UPDATE portfolio_cats SET id '3' WHERE id '3'
        
    [4] => UPDATE portfolio_cats SET id '4' WHERE id '4'
        
    [5] => UPDATE portfolio_cats SET id '5' WHERE id '7'


  • sailor
    antwortet
    Deine Frage ist zwar schon länger her, aber evtl. interessiert es andere:

    Dein Fehler lag in dem Update-Script.

    Schau mal was Dein Script da macht:
    PHP-Code:
    [0] => UPDATE portfolio_cats SET id '0' WHERE id '1' 
    ...
    [
    2] => UPDATE portfolio_cats SET id '2' WHERE id '0' 
    Schon haben wir zweimal die id '2'.

    OK, des Rätsels Lösung liegt einfach darin, dass Du die 'catID' als Zuordner für die Updates nutzt, denn $item ist nicht die vorherige Position, sondern die catID.

    update.php
    PHP-Code:
    ...
    foreach (
    $_GET['catID'] as $position => $item) :
        
    $sql[] = "UPDATE portfolio_cats SET id = '$position' WHERE [B]catID[/B] = '$item'";
    endforeach; 
    ... 
    Viel Spass damit!

    Einen Kommentar schreiben:


  • jGeee
    antwortet
    zeig wenigstens den code wo du die statements aus dem sql-array ausführst..

    Einen Kommentar schreiben:


  • gec
    antwortet
    Zitat von jGeee Beitrag anzeigen
    das ist aber nicht der komplette code oder? wo führst du denn den query des $sql arrays aus?

    ps: du solltest das $sql array auch vorher mit einem $sql = array(); erstellen - was aber nicht zu deinem fehler führen sollte. außerdem solltest du niemals variablen die von usern kommen direkt so verwenden.
    natürlich ist es nicht der ganze code, alles wäre hier zu viel zu lesen
    wenn dir helfen sollte mir zu helfen schreib ich gerne die 160 zeilen hier rein
    zu den variablen die seite, und Änderungen kann man nur mit bestimmten rechten "admin" vornehmen.

    ich denke, der Fehler liegt irgendwo in der admin.portfolio.cats.update.php

    Einen Kommentar schreiben:


  • jGeee
    antwortet
    das ist aber nicht der komplette code oder? wo führst du denn den query des $sql arrays aus?

    ps: du solltest das $sql array auch vorher mit einem $sql = array(); erstellen - was aber nicht zu deinem fehler führen sollte. außerdem solltest du niemals variablen die von usern kommen direkt so verwenden.

    Einen Kommentar schreiben:

Lädt...
X