Dynamisch zwei divs anpassen

fredolin

Erfahrenes Mitglied
Hallo Leute,

ich hab wieder mal ein kleineres Problem. Ich möchte eine Bannerseite so aufbauen, das ich über eine foreachschleife und count die Banner so anordne, das links und recht neben einander die Banner stehen.

Im alten Script habe ich es das so gelöst
PHP:
$banner[] = array(
				'headline'	=>	'Banner Eins',
				'imgpfad'	=>	'<img src="irgendeineURL/banner_01.gif" alt="Dein Banner" width="468" height="60" border="0" />',
				'url'		=>	'http://www.meineURLvomBanner.de',
	);

$banner[] = array(
				'headline'	=>	'Banner Eins',
				'imgpfad'	=>	'<img src="irgendeineURL/banner_01.gif" alt="Dein Banner" width="468" height="60" border="0" />',
				'url'		=>	'http://www.meineURLvomBanner.de',
	);

$banner[] = array(
				'headline'	=>	'Banner Eins',
				'imgpfad'	=>	'<img src="irgendeineURL/banner_01.gif" alt="Dein Banner" width="468" height="60" border="0" />',
				'url'		=>	'http://www.meineURLvomBanner.de',
	);

$banner[] = array(
				'headline'	=>	'Banner Eins',
				'imgpfad'	=>	'<img src="irgendeineURL/banner_01.gif" alt="Dein Banner" width="468" height="60" border="0" />',
				'url'		=>	'http://www.meineURLvomBanner.de',
	);

foreach($banner as $nr=> $inhalt) {
		$headline[$nr]	=	$inhalt['headline'];
		$imgpfad[$nr]	=	$inhalt['imgpfad'];
		$url[$nr]		=	$inhalt['url'];
		
		switch ($inhalt['headline']) {
               case('Banner Eins'):
			echo'
				<div class="left_links">
					<div class="link_headline"><h2  class="h2text">'.$inhalt['headline'].'</h2></div>
					<div class="link_banner_code">
						<!--Werbebanner start //-->
							<a href="'.$inhalt['url'].'" target="_blank">'.$inhalt['imgpfad'].'</a>
						<!-- Werbebanner end //-->
					</div>
				</div>';
			break;


                  case('Banner Zwei'):
			echo'
				<div class="right_links">
					<div class="link_headline"><h2  class="h2text">'.$inhalt['headline'].'</h2></div>
					<div class="link_banner_code">
						<!--Werbebanner start //-->
							<a href="'.$inhalt['url'].'" target="_blank">'.$inhalt['imgpfad'].'</a>
						<!-- Werbebanner end //-->
					</div>
				</div>';
			break;

              usw...

                }

}

So nun würde ich gerne mit Hilfe über count es so realisieren, dass die beiden Div-Container
HTML:
<div class="left_links"></div>
und
<div class="right_links"></div>
abwechseln in einer Schleife eingesetzte werden.

Meine Anfänge sehen so aus

PHP:
$left = 'cols50';
	$right = 'cols50';
		for($i=0; $i<count($banner);$i++){
			$rows = ($count % 2) ? $left : $right;
			echo '<div class="'.$left.'">';
				foreach($banner[$i] AS $value){
					echo'
						<div class="link_headline"><h2 class="h2text">'.$value['headline'].'</h2></div>
					<div class="link_banner_code">
					<!--Werbebanner start //-->
						<a href="'.$value['url'].'" target="_blank">'.$value['imgpfad'].'</a>
					<!-- Werbebanner end //-->
					';
					echo '</div>';
				}
			$count++;
			echo '</div>';
		}

Aber hier bekomme ich nur die ersten Buchstaben des jeweiligen Array angezeigt. Was mache ich falsch..:rolleyes:

Kann mir einer helfen..

Das ist die Seite, die ich meine und die neu gemacht werden soll
http://www.schmerz-haft.de/?act=links

Danke an Euch

Gruß
Fredolin
 
Zuletzt bearbeitet:
Ich würde es mal so in der Art probieren
Code:
div#right {
float:right;
width:xxx%;
}
div#left {
margin-right: xxx%;
}
PHP:
        for($i=0; $i<count($banner);$i++){
            if($i %2){
            echo '<div class="left">';
            }
            else
            {
            echo '<div class="right">';
            }
     .
     .
     .
        }
ausser ich habe dich komplett falsch verstanden ;)

mfg
 
Hallo Spikaner,

erstmal Danke für deineschnelle Antwort ;-)

Doch mein Sript ist schon so aufgebaut, wie du es da schreibst
PHP:
$left = 'col_468';
	$right = 'col_468';
	$count = 0;	
			for($i=0; $i<=count($banner);$i++){
				$rows = ($count[$i] % 2) ? $left : $right;
				echo '<div class="'.$rows.'" id="'.$i.'">';
					foreach($banner AS $value){
					echo'
					<div class="link_headline"><h2 class="h2text">'.$value['headline'].'</h2></div>
						<div class="link_banner_code">
						<!--Werbebanner start //-->
							<a href="'.$value['url'].'" target="_blank">'.$value['imgpfad'].'</a>
						<!-- Werbebanner end //-->
						';
					echo '</div>';
					}
		echo '</div>';
		$count++;
			
		}

Aber nun durchläuft das Script 15mal und läd alle Banner 15mal. (15mal = 15 Banner sind enthalten)
So das will ich nicht. Es soll nur einmal jeder 15 Bänner angezeigt werden. Und immer in einer Zeile 2 Stück.

So dafür benötige ich Hilfe.
 
du machst es einmal mit der for und nochmal mit der foreach

PHP:
            for($i=0; $i<=count($banner);$i++){  // läuft jetzt 15 mal durch
                $rows = ($count[$i] % 2) ? $left : $right;
                echo '<div class="'.$rows.'" id="'.$i.'">';
                    foreach($banner AS $value){  // läuft auch 15 mal durch
                    echo'
pack echo '<div class="'.$rows.'" id="'.$i.'">'; mit in die foreach

PHP:
$i = 0;
foreach($banner AS $value){
                $rows = ($count[$i] % 2) ? $left : $right;
                echo '<div class="'.$rows.'" id="'.$i.'">';
                    echo'
                    <div class="link_headline"><h2 class="h2text">'.$value['headline'].'</h2></div>
                        <div class="link_banner_code">
                        <!--Werbebanner start //-->
                            <a href="'.$value['url'].'" target="_blank">'.$value['imgpfad'].'</a>
                        <!-- Werbebanner end //-->
                        ';
                    echo '</div>';
                    }
        echo '</div>';
$i ++;
}

mfg
 
Hallo Spikaner

danke dir.. Du hast mir den Wald vor lauter Bäumen gezeigt. War kalr, das mit einer doppel Schleife das nicht gut gehen wird.. Aber ich hab es nicht gesehen

Danke Dir
 
Zurück