2012-04-05 5 views
0

Ich habe zwei Listen in einem Dialogfeld - eine Blase zählen Liste und eine Liste Daumen. Die Bubble-Count-Liste sieht gut aus, aber die Thumbs-Liste wird als separate Listenelemente angezeigt.jqm thumbs list nicht korrekt angezeigt

enter image description here

Ich bin zum Schreiben der HTML-Ausgabe nicht auf diese Weise verwendet wird, vielleicht etwas einfach ich fehlte. Der Code für die Blasenzahl Liste unter „// Film Ordner Kind zuweisen“ und der Code für die Daumen Liste unter „// Anzeigebildanzahl, kodieren URL-Pfad“:

private function _makeoutput($folder_index) { 

$html = ''; 

    $query = 'dir§'.$this->session->userdata('uid').'§'.$folder_index; 

    //api query, create listview for images 
    if($xml = $this->api->query($query)){ 
    $xml = simplexml_load_string($xml); 
    $html .= '<ul data-role="listview" data-inset="true" text-align:center;>'; 

    //assign movie folders to child 
    foreach($xml->COM->MOVIE_FOLDER as $child){ 
     $html .= '<li>'; 
     //count number of images in each root folder 
     $bubble_count = $child->MOVIE->count(); 
     $html .= '<a href="'.$child->attributes()->indexI.'" data-rel="dialog" data-transition="slide">'.$child->attributes()->nameS.'<span class="ui-li-count">'.$bubble_count.'</span></a>'; 
     $html .= ' </li>'; 
    } 
    $html .= '</ul>'; 

    //display image count, encode url/path 
    for($i = 0, $c = $xml->COM->MOVIE->count(); $i < $c; $i++){ 
     $html .= '<ul data-role="listview" class="ui-listview" data-inset="true">'; 
     $html .= '<li>'; 
     $html .= '<a> 
     <img src="https://[url]'.rawurlencode($this->_decode_path($xml->COM->MOVIE[$i]->attributes()->dbIcoFilename)).'" id="imgThumb" alt="'.$xml->COM->MOVIE[$i]->attributes()->nameS.'" /> 
     <h1>'.$xml->COM->MOVIE[$i]->attributes()->nameS.'</h1> 
     </a>'; 
     $html .= ' </li>'; 
     $html .= '</ul>'; 
    } 
    } 
    else{ 
    $data['output'] = $this->_makeoutput($folder_index); 
    } 
return $html; 
} 

Antwort

2

zuerst weg .. Warum "privat"?

die Frage auf der Hand ist, dass Sie den ul-Tag außerhalb der for-Schleife müssen Sie sonst neue Listen generieren (und das ist, was Sie sehen):

$html .= '<ul data-role="listview" class="ui-listview" data-inset="true">'; 
for($i = 0, $c = $xml->COM->MOVIE->count(); $i < $c; $i++){ 

    $html .= '<li>'; 
    $html .= '<a> 
    <img src="https://[url]'.rawurlencode($this->_decode_path($xml->COM->MOVIE[$i]->attributes()->dbIcoFilename)).'" id="imgThumb" alt="'.$xml->COM->MOVIE[$i]->attributes()->nameS.'" /> 
    <h1>'.$xml->COM->MOVIE[$i]->attributes()->nameS.'</h1> 
    </a>'; 
    $html .= ' </li>'; 

} 
$html .= '</ul>'; 
+0

+1: gleiche Antwort wie ich :) – Th0rndike

+0

Dumme Neuling Fehler, nehme ich an. Vielen Dank! Warum nicht privat? – Karin

+0

private Funktion ist nicht gültig Javascript (noch nicht). privat IS ist ein reserviertes Schlüsselwort, aber es ist für zukünftige Implementierung reserviert http://javascript.about.com/library/blreserved.htm – VDP

2

Das Problem ist, dass Sie neue ul erstellen für jedes Bild. In dieser Schleife:

 //display image count, encode url/path 
for($i = 0, $c = $xml->COM->MOVIE->count(); $i < $c; $i++){ 
    $html .= '<ul data-role="listview" class="ui-listview" data-inset="true">'; 
    $html .= '<li>'; 
    $html .= '<a> 
    <img src="https://[url]'.rawurlencode($this->_decode_path($xml->COM->MOVIE[$i]->attributes()->dbIcoFilename)).'" id="imgThumb" alt="'.$xml->COM->MOVIE[$i]->attributes()->nameS.'" /> 
    <h1>'.$xml->COM->MOVIE[$i]->attributes()->nameS.'</h1> 
    </a>'; 
    $html .= ' </li>'; 
    $html .= '</ul>'; 
} 

die ul außerhalb der Schleife erstellen, so wird jeder li innerhalb derselben ungeordnete Liste setzen

+0

+1: gleiche Antwort wie ich :) (Ich war zuerst: p) – VDP

+0

nur 33 Sekunden, aber ja, du warst :) – Th0rndike

+0

Doh! natürlich, danke! – Karin

Verwandte Themen