Willkommen in der Webstatt Zum Webstatt Blog und Stories
trefixxx am 03.03.06 17:19

Hallo Community,

ich hab da mal ein problem, was ich nicht lösen kann.
Es geht um folgendes layout: http://www.tr-art.de/demo/gag/ (nicht möglich die links anzuklicken, weil ich nur die relevanten daten hochgeladen habe).

Problem:
- Artikel, Interaktiv sind Oberpunkte für weitere Links. Klickt man auf die buttons, so erscheinen diese in dem leeren Feld darunter!
- Per DropDownMenü "Aktuellste Themen aus" werden die beiden neusten Themen aus einer Kategorie ausgelesen und dargestellt.

Sobald man sich alle Links bei einer Oberrubrik anschaut und dann das DropDownMenü benutzt, verschwinden die Links.
Andersrum genauso: Wenn gerade die beiden aktuellsten Themen einer Rubrik dargestellt sind, ich mir aber die Links eines Oberpunktes (Artikel oder Interaktiv) anschauen will, verschwinden die aktuellsten Themen.
Das selbe Problem tritt auf, wenn man einen Link eines Oberpunktes anklickt. Die Seite öffnet sich (in dieser Preview nicht, weil die dateien nicht vorhanden sind), aber die Links in dem Kasten verschwinden.

Das ist erstmal so auch logisch aufgrund des Codes, aber ich will, dass diese Dinge nicht verschwinden, sobald eine andere Funktion benutzt wird.
Wie kann ich das ändern? Die Funktionen müssen ja unabhängig zueinander sein.


Der betreffende Code:
<a href="?action=index&amp;nav=artikel"><img src="images/artikel_navi.jpg" border="0"></img></a><br />
<a href="?action=index&amp;nav=interaktiv"><img src="images/interaktiv_navi.jpg" border="0"></img></a><br />
<a href="?section=fotos&sid=<? echo $PHPSESSID; ?>" class="menu"><img src="images/fotos_navi.jpg" border="0"></img></a>

<div id="navigation_small">

<div id="navi_text">
<?php
if($_GET['nav']=="artikel"){
echo '<div style="float: left;"><a href="?section=artikel&action=cat&catid=4&sid='.$PHPSESSID.'">Lokales </a><br/>
<a href="?section=artikel&action=cat&catid=2&sid='.$PHPSESSID.'">Medien </a><br/>
<a href="?section=artikel&action=cat&catid=6&sid='.$PHPSESSID.'">Meinungen </a><br/>
<a href="?section=artikel&action=cat&catid=5&sid='.$PHPSESSID.'">Politik </a></div>
<div style="float: left;"><a href="?section=artikel&action=cat&catid=3&sid='.$PHPSESSID.'">Schule </a><br/>
<a href="?section=artikel&action=cat&catid=7&sid='.$PHPSESSID.'">Unterwegs </a></div>'; }
elseif($_GET['nav']=="interaktiv"){
echo '<a href="?section=gbook&sid='.$PHPSESSID.'">G&auml;stebuch</a><br/>
<a href="?section=radio&sid='.$PHPSESSID.'">Radio</a><br/>
<a href="?section=forum&sid='.$PHPSESSID.'">Forum</a><br/>
<a href="?section=interaktiv&sid='.$PHPSESSID.'">Umfrage</a>'; }
elseif($_GET['nav']=="fotos"){
echo "&nbsp;"; }
?>

</div>

</div>

</div>

<div id="head_content">

<div id="head_text">
<form action="?action=index" method="POST">
<select name="kategorie" onchange="form.submit();">
<option value="0">Aktuellste Themen aus</option>
<option value="1">Computer</option>
<option value="2">Medien</option>
<option value="3">Schule</option>
<option value="4">Lokales</option>
<option value="5">Politik</option>
<option value="6">Meinungen</option>
<option value="6">Unterwegs</option>
</select>
</form>

<?php
if(!empty($_POST['kategorie'])) {

$abfrage = "SELECT * FROM gag_artikel WHERE cat = ".$_POST['kategorie']." LIMIT 0, 2";
$ergebnis= mysql_query($abfrage,$verbindung);
while($zeile = mysql_fetch_array($ergebnis)) {
echo '<table width="100%">
<tr>
<td width="11%">';

if (file_exists("images/artikel/vor/" . $zeile['id'] . ".jpg")) {
$bild = "artikel/vor/".$zeile['id'].".jpg"; }
else {
$bild = "trans.gif"; }

echo ' <img src="images/'.$bild.'" border="0" height="38" width="49"></td>
<td><span style="color: #EEEEEE;"><b>'.$zeile['titel'].'</b></span><br/><span style="color: #EEEEEE;">'.substr($zeile['text'],0,70).'...</span> <a href="?section=artikel&action=artikel&catid='.$zeile['cat'].'&artikelid='.$zeile['id'].'&sid='.$PHPSESSID.'">[weiterlesen]</a></td>
</tr>
</table>'; }

}
?>
</div>


wär euch dankbar, wenn mir einer helfen könnte.

netcup.de Warum gibt es hier Werbung?
Erdo am 03.03.06 17:36

hääääääää?!?!?

Sven Sven am 03.03.06 17:42

Dachte ich mir erlich gesagt auch.
Du hast also praktisch so ein Menü :

Parent---|
- Child
- Child
- Child
Parent2--|
- Child
- Child
- Child


Seh ich das richtig?

Edit : Ach jetzt. Du musst natürlich immer deine mommentane Kategorie mitschicken.
Entweder an alle Links dranhängen, oder halt in eine Session schreiben.

Christian am 03.03.06 17:47

kp aber ggf hilft ja


<?php
$nav = $_GET['nav'];
if($nav=="artikel"){
echo '<div style="float: left;"><a href="?section=artikel&action=cat&catid=4&sid='.$PHPSESSID.'">Lokales </a><br/>
<a href="?section=artikel&action=cat&catid=2&sid='.$PHPSESSID.'">Medien </a><br/>
<a href="?section=artikel&action=cat&catid=6&sid='.$PHPSESSID.'">Meinungen </a><br/>
<a href="?section=artikel&action=cat&catid=5&sid='.$PHPSESSID.'">Politik </a></div>
<div style="float: left;"><a href="?section=artikel&action=cat&catid=3&sid='.$PHPSESSID.'">Schule </a><br/>
<a href="?section=artikel&action=cat&catid=7&sid='.$PHPSESSID.'">Unterwegs </a></div>'; }
elseif($nav=="interaktiv"){
echo '<a href="?section=gbook&sid='.$PHPSESSID.'">G&auml;stebuch</a><br/>
<a href="?section=radio&sid='.$PHPSESSID.'">Radio</a><br/>
<a href="?section=forum&sid='.$PHPSESSID.'">Forum</a><br/>
<a href="?section=interaktiv&sid='.$PHPSESSID.'">Umfrage</a>'; }
elseif($nav=="fotos"){
echo "&nbsp;"; }
?>


in verbindung mit

<form action="?action=index&amp;nav=<?= $nav; ?>" method="POST">

Sven Sven am 03.03.06 17:50

Quote
Original von Sven
Edit : Ach jetzt. Du musst natürlich immer deine mommentane Kategorie mitschicken.
Entweder an alle Links dranhängen, oder halt in eine Session schreiben.


;)

trefixxx am 03.03.06 18:30

@ Sven: richtig :)
Ich habe an jede url jetzt die variable "nav" mitgesendet. Funktioniert auch soweit.
Aber sobald ich die beiden neusten Artikel der Kategorie aufrufe und danach den button artikel anklicke, verschwinden die artikel.

EDIT //
Neuer Code unten

Sven Sven am 03.03.06 18:36

Ich blick da nicht ganz durch xD
Mach mal nen Abgleich von deiner $_POST und deiner $_GET Variable für die Kategorien.

trefixxx am 04.03.06 00:49

was meinst du mit Abgleich? :(

trefixxx am 04.03.06 20:19

sorry für doppelpost, aber ich muss nun mal pushen :)

Also soweit klappt alles. Aber sobald ich die die beiden neusten Themen der Kategorie mir anschaue, sind die links weg...

Christian am 05.03.06 09:50

$_GET['nav']=="artikel" OR $_POST['nav']

damit überprüfst du ja nur ob $_GET['nav']= artikel ist oder $_POST['nav'] gesetzt ist, oder?

wie wäre es mit

$_GET['nav']=="artikel" OR $_POST['nav']=="artikel"

trefixxx am 05.03.06 10:37

ich glaub ihr versteht nicht was ich will :)
Besucht also mal bitte folgende Adresse: http://www.tr-art.de/demo/gag/

Ihr klickt auf "Artikel" in der Navigation oben links. In der noch leeren Box erscheinen 6 Links.
Nun bedient ihr das DropDownMenü rechts daneben. Ich wählt "Meinungen" aus und es erscheinen 2 Artikel.
-> Währenddessen sind die Links in der Box allerdings verschwunden.

Nun ist die Box leer, aber es werden 2 Artikel angezeigt. Nun klickt ihr wieder auf "Artikel" und es erscheinen wieder 6 Links in der leeren Box.
-> Währenddessen sind die beiden Artikel verschwunden.

Frage: Ich will, dass die beiden neusten Artikel einer Rubrik (aufgerufen durch das DropDownMenü) auch angezeigt werden, wenn ich zwischendurch auf den Navigationspunkt "Artikel" klicke.

Ich hoffe ihr habt das nun verstanden.

Christian am 05.03.06 10:58

ah k

du hast ja
if(!empty($_POST['kategorie'])) {
und wenn du jetzt kein punkt auswählst, is das natürlich leer
du bräuchtest jetzt noch ne variable, die dir sagt, ob schonmal ne kategorie ausgewählt wurde und dann schaust halt ob die gesetzt ist, ähnlich diesem
if(!empty($_POST['kategorie'])
|| !empty($kat)) {
if(!empty($_POST['kategorie']) ){
$kat = $_POST['kategorie'];
}
$abfrage = "SELECT * FROM gag_artikel WHERE cat = $kat LIMIT 0, 2";

milahu milahu am 05.03.06 11:27

Quote
Original von trefixxx
Nun ist die Box leer

nav=artikel fehlt.

trefixxx am 06.03.06 19:51

@ sucker: funktioniert nicht.

Also ich habe jetzt beispielsweise "Artikel" angeklickt und bediene nun das DopDownMenü.
Die Links verschwinden nicht: funktioniert.



Wenn ich jetzt allerdings "Interaktiv" anklicke, während die beiden neusten Artikel einer Rubrik angezeigt werden (durch das DropDownMenü aufgerufen),verschwinden diese beiden Artikel. Das ist noch nicht gelöst.

milahu milahu am 06.03.06 20:13

Quote
Original von trefixxx
Wenn ich jetzt allerdings "Interaktiv" anklicke, während die beiden neusten Artikel einer Rubrik angezeigt werden (durch das DropDownMenü aufgerufen),verschwinden diese beiden Artikel.

nav=interaktiv fehlt.

trefixxx am 06.03.06 20:45

öhm, auch wenn ich" interaktiv" angeklickt habe, dann das DropDownMenü bediene und danach "artikel" anklicke, verschwinden die beiden neusten artikel.

@ milahu: kannst du dich vielleicht ein bisschen umfangreicher ausdrücken? ;) Deine 3 Wörter Posts kann ich nicht nachvollziehen... :(

milahu milahu am 06.03.06 21:00

Bei Interaktiv wird der Parameter "nav" nicht übergeben, deshalb gibt's auch keine Navi. Logisch, oder? ;)

trefixxx am 06.03.06 21:10

upsala, sorry milahu, aber der fehler war schon lange behoben. Okay, konntest du nicht wissen :) *duck*

Also hier ist der code - das ist der aktuelle stand!


<div id="navigation_small">

<div id="navi_text">
<?php
if($_GET['nav']=="artikel" OR $_POST['nav']=="interaktiv" OR isset($_POST['kategorie'])){
echo '<div style="float: left;"><a href="?section=artikel&action=cat&catid=4&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Lokales </a><br/>
<a href="?section=artikel&action=cat&catid=2&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Medien </a><br/>
<a href="?section=artikel&action=cat&catid=6&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Meinungen </a><br/>
<a href="?section=artikel&action=cat&catid=5&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Politik </a></div>
<div style="float: left;"><a href="?section=artikel&action=cat&catid=3&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Schule </a><br/>
<a href="?section=artikel&action=cat&catid=7&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Unterwegs </a></div>'; }
elseif($_GET['nav']=="interaktiv" OR $_POST['nav']=="interaktiv"){
echo '<a href="?section=gbook&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">G&auml;stebuch</a><br/>
<a href="?section=radio&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Radio</a><br/>
<a href="?section=forum&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Forum</a><br/>
<a href="?section=interaktiv&nav='.$_GET['nav'].'&sid='.$PHPSESSID.'">Umfrage</a>'; }
elseif($_GET['nav']=="fotos" OR $_POST['nav']=="fotos"){
echo "&nbsp;"; }
?>

</div>

</div>

</div>

<div id="head_content">

<div id="head_text">
<form action="?action=index" method="POST">
<select name="kategorie" onchange="form.submit();">
<option value="0">Aktuellste Themen aus</option>
<option value="1">Computer</option>
<option value="2">Medien</option>
<option value="3">Schule</option>
<option value="4">Lokales</option>
<option value="5">Politik</option>
<option value="6">Meinungen</option>
<option value="6">Unterwegs</option>
</select><input type="hidden" value="<?= $_GET['nav']; ?>" name="nav">
</form>

<?php
$kategorie = $_POST['kategorie'];
if(!empty($_POST['kategorie']) OR !empty($kategorie)) {

$kategorie = $_POST['kategorie'];
$abfrage = "SELECT * FROM gag_artikel WHERE cat = ".$_POST['kategorie']." LIMIT 0, 2";
$ergebnis= mysql_query($abfrage,$verbindung);
while($zeile = mysql_fetch_array($ergebnis)) {
echo '<table width="100%">
<tr>
<td width="11%">';

if (file_exists("images/artikel/vor/" . $zeile['id'] . ".jpg")) {
$bild = "artikel/vor/".$zeile['id'].".jpg"; }
else {
$bild = "trans.gif"; }

echo ' <img src="images/'.$bild.'" border="0" height="38" width="49"></td>
<td><span style="color: #EEEEEE;"><b>'.$zeile['titel'].'</b></span><br/><span style="color: #EEEEEE;">'.substr($zeile['text'],0,70).'...</span> <a href="?section=artikel&action=artikel&catid='.$zeile['cat'].'&artikelid='.$zeile['id'].'&sid='.$PHPSESSID.'">[weiterlesen]</a></td>
</tr>
</table>'; }

}
?>
</div>

</div>

milahu milahu am 06.03.06 21:13

Dann aktualisiere auch gleich mal die online Version. Oder funktioniert etwa schon alles? 8o

trefixxx am 07.03.06 17:07

es funktioniert nicht das "umschalten" vom drop down menü zur normalen navigation.
http://www.tr-art.de/demo/gag -- aktuelle Version

milahu milahu am 07.03.06 19:26

Und nochmal auf Deutsch?

trefixxx am 07.03.06 20:07

du kannst es ja ausprobieren auf der previewseite:

ich bediene das drop down menü - die beiden aktuellsten artikel der gewählten rubrik erscheinen. Danach klicke ich auch "artikel" oder "interaktiv" oder "fotos" und die beiden artikel verschwinden.

Das Problem muss noch gelöst werden.

milahu milahu am 07.03.06 20:44

Ahh, jetz hab ich's verstanden. :D

Das mit den Kurznews ist auch nicht besonders dolle gelöst, wie ich finde.
Denn für die paar Worte die ganze Seite neu zu laden.... naja, ne. ;)

Mach doch sowas ähnliches wie ein Dropdown-Menü:
Oben sind nebeneinander die Kategorien aufgelistet. Überfährt man nun mit der Maus eine Kategorie, so werden unterhalb die entsprechenden Links eingeblendet.

Und das alles, ohne die Seite neu laden zu müssen. :)

trefixxx am 08.03.06 19:39

'tschuldigung :) Ja ich kann mich auch besser ausdrücken ;)

Hmm, eigentlich möchte ich das auf diese Weise beibehalten. Ist das so ein Problem? Kann man das nicht mit Javascript darein laden?

Ich beschäftige mich nun schon seit einigen Tagen mit dme Problem und das will ich nun auch noch lösen :) Trotzdem die Frage bleibt: Wie.. :)

Gibt es da wirklich keine lösung?

milahu milahu am 08.03.06 19:46

Du solltest das Formular auf GET umstellen und keine action angeben, sodass die aktuellen Parameter beibehalten werden und nicht nur der "kurznews" Parameter übergeben wird.

trefixxx am 08.03.06 20:17

und wie ginge das konkret?

milahu milahu am 08.03.06 20:18

<form method="get">

trefixxx am 08.03.06 20:26

wenn blödheit weh tun würde...
dank dir!!!

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt