tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Sven Mintel
ERLEDIGT
NEIN
ANTWORTEN
11
ZUGRIFFE
1518
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    timmeyy timmeyy ist offline Mitglied
    Registriert seit
    Mar 2009
    Beiträge
    21
    Hi Leute!
    ich hab nur begrenzte Kenntnisse mit JS und AJAX, eigentlich nur theoretisch.
    Ich würde gerne sowas mit Bilder umsetzen und zwar sollen links die Bilder aus einem Bilderpool angezeigt werden und rechts soll ein beliebiger Ordner dargestellt sein in den ich meine Bilder schieben und sortieren kann.
    so etwas nur mit bilder:http://www.dhtmlgoodies.com/scripts/...ag-drop-1.html

    Jetzt ist meine Frage:
    Also ich hole mir mit php die Bilder aus der Datenbank bzw vom Webserver, das hab ich schon hinbekommen, ich kann sie auch sortieren, aber wie kann ich es umsetzen das die Bilder von den einen Ordner in den anderen Ordner kommen?
    Ich habs mir so übelegt, dass ich die Bilder erst rüberziehe und dann mit einem Butto speichere?
    Hat da jemand ein Script oder ne Idee wie das geht?
    Wichtig ist es ist kein UPLOAD!

    mfg tim
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Moin Tim,

    so kompliziert ist das garnicht, es gibt da eine Reihe von JS-Bibliotheken, die dir da viel Arbeit abnehmen.

    Ich gehe mal nur auf den JS-Part ein, das kopieren/verschieben bekommst du ja, soweit ich dich verstanden habe, selbst mit PHP hin, sofern du die nötigen Daten hast

    Hier mal ein Beispiel(ist so lauffähig, anstatt der Avatare aus dem Forum nimmst du halt deine eigenen Bilder):
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; 
                                    charset=ISO-8859-1"   />
    <meta name="author"             content="doktormolle" />
    <meta name="date"               content="2009-07-03" />
    <title>Test</title>
    <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
    <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
    <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.sortable.js"></script>
    <script type="text/javascript" src="http://www.json.org/json2.js"></script>
    <style type="text/css">
    <!--
    #sortable{empty-cells:show}
    #sortable td{vertical-align:top}
    #sortable tbody td img{display:block}
    -->
    </style>
    </head>
    <body>
    <table id="sortable" width="300" border="1">
    <colgroup width="50%" span="2"></colgroup>
      <thead>
        <tr>
          <th>Pool</th>
          <th>ZielOrdner</th>
        </tr>
      </thead>
       <tfoot>
        <tr>
          <th colspan="2"><input type="button" value="speichern" onclick="fx('fx.php',$('#target'),'pfad/zum/zielordner/')"></th>
        </tr>
      </tfoot> 
      <tbody>
        <tr>
          <td>
            <img src="http://www.tutorials.de/forum/customavatars/avatar23393_2.gif">
            <img src="http://www.tutorials.de/forum/customavatars/avatar31374_2.gif">
            <img src="http://www.tutorials.de/forum/customavatars/avatar59490_2.gif">
          </td>
          <td id="target"></td>
        </tr>
      </tbody>
    </table>
    <script type="text/javascript">
    <!--
    $("#sortable tbody td").sortable({
      connectWith: '#sortable tbody td'
      }).disableSelection();
     
     
    function fx(url, obj,target)
    {
      var json=JSON.stringify({'zielordner':target,
                               'bilder':
                      obj.find('img').map
                          (
                           function()
                            {
                              return $(this).attr('src');
                            }
                          ).get()});
    if(json.length)
      {
        $.post(url, 
              'data='+escape(json),
              function(data)
                {
                  alert(data); 
                });
      }
    }
    //-->
    </script>
    </body>
    </html>

    Das ganze nutzt das JQuery-Framework, das kann fast alles, was es dafür braucht.(Daher werden auch 2 Skripte von jQuery eingebunden im <head>)

    HTML-seitig ist im Beispiel folgendes wichtig für die korrekte Funktion:
    Da ist eine Tabelle, deren ID ist "sortable".

    In dieser Tabelle ist genau 1 <tbody>...und darin 2 <td>...diese Können sortiert werden. Die <td>, in welche die Bilder geschoben werden sollen, hat die ID "target".

    Das wars von der Seite aus, der Rest läuft so ab:
    Code :
    1
    2
    3
    
    $("#sortable tbody td").sortable({
      connectWith: '#sortable tbody td'
      }).disableSelection();
    ....die beiden <td> im <tbody> werden damit sortierbar gemacht.

    Da ist ein Button, bei dessen onclick eine Funktion fx() aufgerufen wird:
    Code :
    1
    
    fx('fx.php',$('#target'),'pfad/zum/zielordner/')
    Dieser Aufruf gibt der Funktion 3 Parameter mit:
    1. die Adresse eines PHP-Skriptes, später mehr dazu
    2. Die <td>, wohin die Bilder geschoben werden(in dem Fall als jquery-Selektor)
    3. Der Zielordner, wo das PHP-Skript die Bilder später hinschubsen soll

    Die Funktion fx:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    var json=JSON.stringify({'zielordner':target,
                               'bilder':
                      obj.find('img').map
                          (
                           function()
                            {
                              return $(this).attr('src');
                            }
                          ).get()});

    Es wird ein Objekt mit 2 Eigenschaften erstellt:
    zielordner: was du der Funktion übergeben hast
    bilder: ein Array mit den Pfaden aller in die target-Zelle geschobenen Bilder.

    Dieses Objekt wird zu einem JSON-String kodiert....das kann man so gut versenden und mit PHP wieder dekodieren.(Daher wurde im <head> auch ein Skript eingebunden, welches dies Objekt kodieren kann...json2.js)

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    if(json.length)
      {
        $.post(url, 
              'data='+escape(json),
              function(data)
                {
                  alert(data); 
                });
      }

    Das ganze wird per AJAX an das PHP-Skript gesendet, welches die Daten verarbeiten kann, hier mal ein Beispiel für fx.php:
    PHP-Code:
    <?php
      
    if(isset($_POST['data']))
      {
         
    $data=json_decode((get_magic_quotes_gpc())
                            ? 
    stripslashes($_POST['data'])
                            : 
    $_POST['data']
                           );
         if(
    is_array($data->bilder) && count($data->bilder))
         {
            echo 
    'Folgende Bilder können jetzt per PHP nach '.
                  
    $data->zielordner." verschoben werden:\n\n";
            foreach(
    $data->bilder as $bild)
            {
              echo 
    parse_url($bildPHP_URL_PATH )."\n";

            }
         }
         else
         {
          echo 
    "nix zum verschieben";
         }
         
      }
      else
      {
        echo 
    'keine Daten';
      }
    ?>
    Da müsstest dann halt das verschieben(kopieren) der Bilder umsetzen, die nötigen Daten hast du ja verfügbar.

    Habs mal hochgeladen zum Testen:
    http://doktormolle.de/temp/343224/
    Quaese bedankt sich. 

  3. #3
    timmeyy timmeyy ist offline Mitglied
    Registriert seit
    Mar 2009
    Beiträge
    21
    Hi Leute!
    ich wollte folgendes Skript verwenden:
    http://www.webresourcesdepot.com/dyn...query-and-php/

    Mein Problem ist das ich anstatt

    Code :
    1
    
    <li id="recordsArray_&lt;?php echo $row['recordID']; ?&gt;">&nbsp;</li>

    Bilder aus einem Verzeichnis und aus der DB sortieren möchte.
    Hat jemand ne Idee wie das geht?

    Ich danke euch schonmal

    mfg tim
     

  4. #4
    Maik Tutorials.de Gastzugang
    Hi,

    so wie ich das in dem Beispiel entnehme, müssen lediglich anstelle der Textpassagen die Bilder in die Liste eingepflegt werden.

    mfg Maik
     

  5. #5
    timmeyy timmeyy ist offline Mitglied
    Registriert seit
    Mar 2009
    Beiträge
    21
    Also ich bin fast sprachlos, das ist genau das was ich brauche sogar mit meinem geliebten und bevorzugtem jquery vielen dank!
    super danke dir!!

    gruß tim
     

  6. #6
    Maik Tutorials.de Gastzugang
    Und das nächste Mal vermeide bitte solch Doppelposts im Forum, die ich hier dann mal zusammentackere - vielen Dank!

    Zitat Zitat von Netiquette #12
    Bitte erstelle keine Doppel-/Mehrfach-/Pushpostings. Dazu zählen insbesondere das Erstellen identischer Themen in mehreren unterschiedlichen Unterforen, das mehrfache oder erneute Einstellen eines bereits vorhandenen Themas, und das Posten von Beiträgen, die einzig und allein dem Zweck dienen, das entsprechende Thema in der Themenauflistung wieder weiter oben zu platzieren (sog. „Thread Pushing“). Derartige Beiträge werden restlos gelöscht. Sollte der Eindruck bei unseren Moderatoren entstehen, dass wissentlich gegen diesen Punkt verstoßen wurde, hat dies die unbegrenzte Sperrung des Accounts zur Folge.

    mfg Maik
     

  7. #7
    timmeyy timmeyy ist offline Mitglied
    Registriert seit
    Mar 2009
    Beiträge
    21
    hi!
    ja sry, ich hatte den anderen thread ganz vergessen...
     

  8. #8
    Avatar von mogmog
    mogmog mogmog ist offline Mitglied Brokat
    Registriert seit
    Oct 2005
    Ort
    Berlin
    Beiträge
    306
    Hy,

    ich habe mal eine Frage zu dem Beitrag. ich habe eine Idee für meine Bildergalerie nur es einfach per php funktioniert nur finde ich die Idee mit dem Drag & Drop sehr sehr gut.

    Nun zu meiner Idee.
    Ich habe eine Tabelle mit Ordnern von dem brauche ich die ID und einmal eine Tabelle mit den Bildern von denen brauche ich auch nur die ID.
    d.h. wie kann ich die Bilder so per Drag & Drop sortieren und wenn dies gespeichert wird soll ein solcher String gesendet werden (bild id) "1,2,3,4,5,9".
     

  9. #9
    Avatar von mogmog
    mogmog mogmog ist offline Mitglied Brokat
    Registriert seit
    Oct 2005
    Ort
    Berlin
    Beiträge
    306
    Hallo und guten abend,

    Ich habe dieses Script nutzen wollen und etwas angepasst habe auch soweit das hin bekommen wie ich es wollte bis auf ein paar kleinlichkeiten.

    1. ich weiß nicht wie ich hier einen kleinen helper einbauen kann d.h. es soll ein kleines Kästchen sein das einfach nur eine gestrichelte Linie hat.
    2. das Bild was sich angeklickt ist (draged) soll leicht durchsichtig sein.

    die beiden Sachen sind mit CSS recht einfach umsetzbar wenn ich da eine klasse oder id habe nur wie kann ich mir in diesem die holen bzw. erstellen.

    hier mal meine Modifizierung:
    HTML-Code:
    <div id="sortable">
    
    <div id=="pool" style="min-height:100px; width:19%; border:1px dashed #cecece; float:left;">
    Trasch:<br />
    <img id="3" src="js/avatar23393_2.gif">
    </div>
    <div id="target" style="width:80%; border:1px dashed #cecece; float:left;">
    Bilder:<br />
    	<img id="1" src="js/avatar59490_2.gif">
    	<img id="2" src="js/avatar31374_2.gif">
    </div>
    
    </div>
    <div id="ausgabe">
    <input type="button" value="speichern" onClick="fx('fx.php',$('#target'))">
    </div>
    
    <script type="text/javascript">
    
    <!--
    $("#sortable div").sortable({
      connectWith: '#sortable div'
      }).disableSelection();
    
    function fx(url, obj,target)
    {
      var json=JSON.stringify({ 'bilder':
    				  obj.find('img').map
    					  (
    					   function()
    						{
    						  return $(this).attr('id');
    						}
    					  ).get()});
    
    if(json.length)
    	{
    	$.post(url, 'data='+escape(json),
    		function(data)
    			{ alert(data); });
    	}
    }
    //-->
    </script>
     

  10. #10
    Avatar von mogmog
    mogmog mogmog ist offline Mitglied Brokat
    Registriert seit
    Oct 2005
    Ort
    Berlin
    Beiträge
    306
    also zum 1. punkt das habe ich herausgefunden wie es funtkioniert.

    man muss nur:
    HTML-Code:
    placeholder: 'hepler',
    einfügen und schon hat man eine Klasse die man editieren kann. nur zu 2. einer kleinen gost Funktion habe ich noch nichts finden können.

    ich würde mich über eine Antwort sehr freuen.
     

  11. #11
    Avatar von einfach nur crack
    einfach nur crack einfach nur crack ist offline mag Cookies & Kekse
    tutorials.de Premium-User
    Registriert seit
    May 2007
    Ort
    Dresden (Sachsen)
    Beiträge
    1.960
    Unter Resizable findet man die Eigenschaft ghost, welche man dort einfach auf true setzen muss. Vielleicht funktioniert das auch in diesem Fall.
     
    Ich mag:
    • positive Bewertungen meiner Beiträge
    • ein Danke für meine hilfreichen Beiträge

    Dabei kann ich dir helfen: PHP --- Javascript --- Ruby --- Coffeescript --- CSS --- HTML --- Webtechnologien --- Shell --- UNIX

    ... noch was: falls du mit dem Thema hier fertig bist, dann kannst du es auch als erledigt markieren.

  12. #12
    Avatar von mogmog
    mogmog mogmog ist offline Mitglied Brokat
    Registriert seit
    Oct 2005
    Ort
    Berlin
    Beiträge
    306
    das habe ich schon versucht funktioniert leider nicht.

    ich habe aber ein anderes Problem gerade festgestellt unter dem IE und opera funktioniert das drag & drop leider nicht.

    woran kann das liegen?

    //-------------------------------------------------------------------------------------------

    Fehler gefunden das war nur ein Schussel Fehler meiner seits =)
    Geändert von mogmog (16.09.09 um 00:47 Uhr)
     

Ähnliche Themen

  1. Css Layout verschiebung
    Von alex130 im Forum CSS
    Antworten: 2
    Letzter Beitrag: 06.11.06, 18:44
  2. Verschiebung
    Von dragon90 im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 16.10.06, 10:08
  3. verschiebung im IE
    Von Wanna im Forum HTML & XHTML
    Antworten: 6
    Letzter Beitrag: 31.08.06, 20:38
  4. Verschiebung in JTable
    Von MasterHimself im Forum Java
    Antworten: 1
    Letzter Beitrag: 23.10.05, 16:26
  5. Grafik verschiebung
    Von Amr0d im Forum CSS
    Antworten: 2
    Letzter Beitrag: 19.04.02, 10:25

Stichworte