ralphi: variablen von <li> nach href="#anderes_div" übergeben

Halloo Leute,

ich hab eine grundsätzliche Frage zu Variablen in JQuery (div's).
bis jetzt hab ich alles in php gelöst und nicht wirklich ahnung, wie ich eine Variable über div's transportiere.

ich habe eine Liste <ul> mit song namen, cover etc (mit php generiert)

echo"<li class='lieder ui-widget-content ui-corner-tr'>\n";  
	echo"<h5 class='ui-widget-header'>" . $name . "</h5>\n";  
	echo"<img src='img_min/" . $name2 . ".jpg' alt='" . $name . "' width='100' height='100' />\n";  
	echo"<a href='#loeschen' title='Del' class='ui-icon ui-icon-close'></a>\n";  
	echo"<a href='" . $name2 . ".mp3' title='Zum Download: rechte Maustaste - Link speichern unter!!' class='ui-icon ui-icon-arrow'></a>\n";  
	echo"<a  title=\"Play song\" onclick=\" spiele ('" . $song . "', '" . $cover . "'); \"class=\"ui-icon ui-icon-play\"></a>\n";  
echo"</li>\n";

wobei
$name der song ist
$name2 das ganze mit addslashes()
$cover ein großes bild

auf der HD hab ich:
artist - song.mp3
artist - song.jpg
img_min/artist - song.jpg

unter play song, geh ich zur JS function spiele(song,cover) und kann da die php variablen einfach übergeben

echo"<a title=\"Play song\" onclick=\" spiele ('" . $song . "', '" . $cover . "'); \"class=\"ui-icon ui-icon-play\"></a>\n";
und spielen:
$("audio").attr("src",song);

bei delete song, möchte ich ein data-role="panel" mit href='#loeschen' öffnen.
jetzt weis ich nicht, wie ich die php var in das div #loeschen bekomme. in dem pannel, möchte ich dann einen button zu einer Ajax-funktion (löschen mit php) machen und das lied <li> ausblenden.

eventuell bau ich auch noch ein menue für play, downoad und delete mit

<div data-role="popup" id="popupMenu" data-theme="d">  
        <ul data-role="listview" data-inset="true" style="min-width:210px;" data-theme="d">  
	<li><a href="#" onclick="ajax_zeug(?)">Delete</a></li>  
	<li> .. </li>  
        </ul>  
</div>

wobei ich hier auch die var $song brauche!

mit 'this' bekomme ich doch nur das <a> element oder die <div> id von der liste wo ich draufklicke, oder?
ich bräuchte aber den songnamen 'artist-song'.
Warscheinlich gehts ganz einfach - aber noch nie gemacht.

Grüße aus LA (Landshut)
ralphi

PS: Bei uns ist wieder LAHO. (alle 4 Jahre). Halloo kann man schon nicht mehr hören ;-)

  1. also folgendes umständliches ist mir noch eingefallen:

    ich könnte natürlich die var mit onclick=("function('" . $song . "') ")einer 'normalen' JS function(song) übergeben und als attribute an das andere div übergeben.

    geht das auch mit Jquery direkt?
    $("div1").click ( irgendwas mit var dieser_song );

    ralphi

  2. Hallo,

    als erstes, bevor irgendwelche Lösungsansätze kommen: Worüber kannst du den Song zum Löschen eindeutig identifizieren und hast du diese Information in deinen PHP-Variablen?

    vg ichbinich

    --
    Kleiner Tipp:
    Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
    1. Worüber kannst du den Song zum Löschen eindeutig identifizieren und hast du diese Information in deinen PHP-Variablen?

      // verzeichnis von Covern = songs, im anderen Verzeichnis  
      // songs vom Radio aufgenommen  
      // artist - songname.mp3 bzw jpg  
      $alledateien = scandir('/mnt/HD_a2/music/img_min'); //Ordner "files" auslesen  
          sort($alledateien);  
        
      foreach ($alledateien as $datei) { // Ausgabeschleife  
        
      	$teilen=explode(".jpg",$datei);  
      	$name=$teilen[0];  
        
      // name = songname  
      usw.
      

      jetzt bau ich mir ein div mit

      • name
      • kleines cover
      • kleine buttons play, del etc
        
       // der name im song-kästchen:  
      echo"<h5 id='songname' class='ui-widget-header'>" . $name . "</h5>\n";  
      
      

      jetzt klick ich auf zB löschen

        
      echo"<span id='loeschen_click' title='Del' class='ui-icon ui-icon-close'></span>\n";  
      
      

      jetzt hab ich folgendes probiert:
      ~~~javascript $("#loeschen_click").click(function(){
      $("#loeschen p").text(function(){
      $("#songname").text();
      });

      		$("#loeschen").trigger();  
      	});
      
      #loeschen = panel div  
      klappt aber noch nicht - irgendwo ist da noch ein Fehler?  
        
      
      
      1. Hallo,

        probiers mal so:

        $("#loeschen_click").click(function(){  
        	$("#loeschen p").text($("#songname").text());  
        	$("#loeschen").trigger();  
        });
        

        vg ichbinich

        --
        Kleiner Tipp:
        Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...
        1. probiers mal so:

          $("#loeschen_click").click(function(){  
           	$("#loeschen p").text($("#songname").text());  
           	$("#loeschen").trigger();  
                  alert("hallo");  
           });
          

          reagiert nicht auf klick
          echo"<span id='loeschen_click' title='Del' class='ui-icon ui-icon-close'></span>\n";

          gibts auch einen anderen tag ausser <p> <span> den ich für das icon eine id geben kann, ohne die formatierung zu ändern?

          screenshot

          1. Hallo,

            $("#loeschen_click").click(function(){

            $("#loeschen p").text($("#songname").text());
            $("#loeschen").trigger();
                    alert("hallo");
            });

            Wann wird das bei dir aufgerufen? Existiert zu diesem Zeitpunkt span#loeschen\_click bereits?  
              
            
            > reagiert nicht auf klick  
            
            reagiert nicht auf click oder passiert nur nichts? Mal ein alert() ausprobiert?  
              
            
            > gibts auch einen anderen tag ausser <p> <span> den ich für das icon eine id geben kann, ohne die formatierung zu ändern?  
            
            Du kannst jedem Element eine id geben.  
              
              
            vg ichbinich  
            
            -- 
            Kleiner Tipp:  
            Tofu schmeckt am besten, wenn man es kurz vor dem Servieren durch ein saftiges Steak ersetzt...