Probleme bei anpassung von jcarousel an Webseite

Klopfer

Mitglied
Hallo zusammen,

wie im Betreff schon erwähnt habe ich ein problem mit jcarousel.

Ich habe vor, über die Adressleite ein Variable zu übergeben, die den Name des Ordners der Thumbnails enthält.
Diese Variable kann ich mir auch mit einem einfachen echo ausgeben lassen. Allerdings nur in dem PHP script das ich öffne. Also
index.php?galerie=EM2008
schreibe ich jetzt in der index.php echo $galerie; gibt er mir das auch richtig als Text wieder. Diese Variable möchte ich nun aber an einer anderen stelle in einem anderen Script, welches aber über die selbe Seite mitgeladen wird in einen Textblock mit einbinden. Was aber NICHT funktioniert. Anbei der Quelltext der beiden Dateien. Ich suche jetzt schon 2 Tage dran und finde den Fehler nicht wieso er die Variable nicht ausliest.

index.php
PHP:
<script type="text/javascript" src="../js/jquery-1.2.3.pack.js"></script>
<script type="text/javascript" src="../js/jquery.jcarousel.pack.js"></script>
<link rel="stylesheet" type="text/css" href="../css/skin.css" />
<script type="text/javascript">

function mycarousel_itemLoadCallback(carousel, state)
{
    // Prüfen ob die angefragten Teile schon vorhanden sind
    if (carousel.has(carousel.first, carousel.last)) {
        return;
    }

    jQuery.get(
        'inhalt/galerie_ajax.php',
        {
            first: carousel.first,
            last: carousel.last,
			},
        function(xml) {
            mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
        },
        'xml'
    );
};

function mycarousel_itemAddCallback(carousel, first, last, xml)
{
    // Set the size of the carousel
    carousel.size(parseInt(jQuery('total', xml).text()));

    jQuery('image', xml).each(function(i) {
        carousel.add(first + i, mycarousel_getItemHTML(jQuery(this).text()));
    });
};

/**
 * Item html creation helper.
 */
function mycarousel_getItemHTML(url)
{
    return '<img src="' + url + '" width="75" height="56" alt="" />';
};

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        // Uncomment the following option if you want items
        // which are outside the visible range to be removed
        // from the DOM.
        // Useful for carousels with MANY items.

        itemVisibleOutCallback: {onAfterAnimation: function(carousel, item, i, state, evt) { carousel.remove(i); }},
        itemLoadCallback: mycarousel_itemLoadCallback
    });
});

</script>
<div id="wrap">
  <div id="mycarousel" class="jcarousel-skin-ie7">
    <ul>
      <!-- Inhalt wird Dynamisch erzeugt -->
    </ul>
  </div>

</div>

galerie_ajax.php
PHP:
<?php
$dir = '/galerie/thumb/'.$galerie.'''; 
if(is_dir($dir)){
	//true -> angegebene Variable ist ein Verzeichnis
	if($dir != "." && $dir != ".."){
		foreach(glob("".$dir."/*.jpg") as $bild) {
			$images[] = $bild;
		}
	}
}else{
	//false -> angegeben Variable ist kein Verzeichnis
	$bild = "Kein Ordner";
}


$first = max(0, intval($_GET['first']) - 1);
$last = max($first + 1, intval($_GET['last']) - 1);
$length = $last - $first + 1;

$total = count($images);
$selected = array_slice($images, $first, $length);


header('Content-Type: text/xml');
echo "<data>";
echo "<total>".$total."</total>";
foreach ($selected as $img) {
    echo"<image>".$img."</image>";
}
echo"</data>";
?>


Gruß Fabian
 
Hi,

verstehe ich Dich richtig, dass Du den GET-Parameter in der per XHR aufgerufenen galerie_ajax.php ansprechen möchtest? Dann musst Du den im Request genauso übergeben, wie "first" und "last" und auch so drauf zugreifen.

LG
 
Jetzt habe ich das hinzugefügt, aber es funktioniert trotzdem nicht. Wahrscheinlich ist es nur noch an der falschen stelle.

PHP:
jQuery.get(
        'inhalt/galerie_ajax.php',
        {
            first: carousel.first,
            last: carousel.last,
			<?php
			echo"galerie: carousel.".$galerie."";
			?>			
			},
        function(xml) {
            mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
        },
        'xml'
    );

oder muss ich da noch mehr eintragen?
Gruß Fabian
 
Hi Fabian,

um ehrlich zu sein weiß ich das selbst nicht :(
Firebug gibt mir immer ....galerie=undefined zurück....
Wieso ist JS im vergleich zu PHP so umständlich und kompliziert. -.-

wieso? In PHP definieren sich Variablen doch auch nicht von alleine. ;)

versuch es mal so:

PHP:
jQuery.get(
        'inhalt/galerie_ajax.php',
        {
            first: carousel.first,
            last: carousel.last
            <?php
            $galerien = array(##liste der gültigen Werte für galerie##);
            if(in_array($_GET['galerie'], $galerien)) {
               echo ', galerie: "' . $_GET['galerie'] . '"';
            }
            ?>            
            },
        function(xml) {
            mycarousel_itemAddCallback(carousel, carousel.first, carousel.last, xml);
        },
        'xml'
    );

Und in galerie_ajax.php dann natürlich auf $_GET['galerie'] zugreifen, $galerie definiert sich, wie gesagt, nicht von selbst. ;)

LG
 

Neue Beiträge

Zurück