Willkommen in der Webstatt
User-1 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?
User-2 am 03.03.06 17:36

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

User-3 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.

User-4 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">

User-3 am 03.03.06 17:50

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


;)

User-1 am 03.03.06 18:30

@ xyz-207: 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

User-3 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.

User-1 am 04.03.06 00:49

was meinst du mit Abgleich? :(

User-1 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...

User-4 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"

User-1 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.

User-4 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";

User-5 am 05.03.06 11:27

Quote
Original von ***
Nun ist die Box leer

nav=artikel fehlt.

User-1 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.

User-5 am 06.03.06 20:13

Quote
Original von ***
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.

User-1 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.

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

User-5 am 06.03.06 21:00

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

User-1 am 06.03.06 21:10

upsala, sorry xyz-145, 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>

User-5 am 06.03.06 21:13

xyz-48n aktualisiere auch gleich mal die online Version. Oder funktioniert etwa schon alles? 8o

User-1 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

User-5 am 07.03.06 19:26

Und nochmal auf Deutsch?

User-1 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. xyz-48ach klicke ich auch "artikel" oder "interaktiv" oder "fotos" und die beiden artikel verschwinden.

Das Problem muss noch gelöst werden.

User-5 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. :)

User-1 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?

User-5 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.

User-1 am 08.03.06 20:17

und wie ginge das konkret?

User-5 am 08.03.06 20:18

<form method="get">

User-1 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