JavaScript Eigener Rückgabewert bei Verwendung von jQuery UI Selectable

ismon

Lieutenant
Registriert
Dez. 2006
Beiträge
722
Hallo zusammen,

zuerst einmal muss ich gestehen das ich Anfänger in Webentwicklung bin.

Aktuell stehe ich vor folgenden Problem.

Ich verwenden folgendes jQuery UI um Werte aus einer Datenbank in einer schönen auswählbaren Liste anzuzeigen:
http://jqueryui.com/selectable/#serialize

Das funktioniert auch gut.

Allerdings ist es in diesem Beispiel so, dass beim Klick auf ein Element immer der Index des Elements zurückgegeben wird.
Ich bräuchte allerdings bei Klick auf ein Element nicht den index des geklickten Elements sondern eine eigene ID welche auch aus der Datenbank kommt.

Hier der PHP Code in dem die Liste erzeugt wird:
PHP:
<ol id="selectable">
 
<?php

	for($i=0; $i < count($userFeeds); $i++)
	{
	
	$rawxml = file_get_contents($userFeeds[$i]);
	$xml = new SimpleXmlElement($rawxml);
	$feedtitle=$xml->channel->title;
	$feedtitle=substr($feedtitle,0,23);
	echo("<li class='ui-widget-content'>$feedtitle</li>");
	
	}

?>	
</ol>

Damit bekomme ich eine schöne Liste mit allen Einträgen aus dem array.
Zusätzlich dazu gibt es noch ein Arry indem die Interne ID zu jedem Eintrag enthalten ist:
$userFeeds_ID[$i]

Diese ID müsste durch das Java Script anstelle des ListenIndex zurückgegeben werden.

Hat jemand ein Tipp ich das gehen könnte?

Danke schonmal.
Gruß
Simon
 
Du kannst dir mit attr prinzipiell jedes beliebige Attribut aus der li holen
Code:
$(function() {
    $( "#selectable" ).selectable({
      stop: function() {
        var result = $( "#select-result" ).empty();
        $( ".ui-selected", this ).each(function() {
          var index = $( "#selectable li" ).index( this );
          // Attribute auslesen, $(this) ist in diesem Fall die <li>
          var class = $(this).attr('class');
          console.log($(this)); // zeigt dir, welches Element von jQuery UI genutzt wird
          console.log(class); // zeigt die das class="..." Attribut  von diesem Element

          result.append( " #" + ( index + 1 ) );
        });
      }
    });
  });
 
Super, vielen Dank das ist genau das was ich gesucht habe.
 
Zurück
Oben