MisterIKS: Dynamischer Verweis innerhalb der Seite

Hallo liebes Forum,

ich arbeite gerade an meiner neuen Homepage und bin bisher auch gut vorrangekommen. Jetzt stehe ich allerdings vor einem Problem:

Ich benutze eine Tabelle mit 3 Spalten und mehreren Reihen. Per PHP fülle ich die Tabelle mit Inhalt aus der Datenbank. Nun möchte ich erreichen, dass die Tabellenzellen Links enthalten, die wiederum auf die gleiche Seite aber mit anderem Inhalt verweisen. Dabei soll nach dem neu laden wieder an die Stelle gescrollt werden, wie die Zeile beginnt, in der vorher geklickt wurde.

Ich habe dazu eine Variable $rowcount benutzt, die mir sagt in welche Reihe geklickt wurde. Dies hänge ich mit #<?=$rowcount?> an den Link an. Um die ganze Tabellenzeile herum habe ich ein <a name="<?=$rowcount?>"> </a> eingefügt. Obwohl der URL das richtige enthält springt meine Seite immer nur zur ersten Tabellenzeile. Habe ich irgend einen Denkfehler gemacht? Wie könnte ich das lösen?

Vielen Dank

Philipp

  1. Lieber MisterIKS,

    hättest Du mal einen Link zu einer Testseite?

    Liebe Grüße,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hello Philipp,

    mache es anders herum:

    Hänge immer einen Verweis '#go' oder so ähnlich an die URL.
    Und wenn Du nun klickst auf einen Link, dann baust Du genau in der Zeile das Gegenstück (den Anker) dazu in die Response ein. Ist kein Anker mit dem Namen im Dokument, dann würde der Viewport sowieso am oberen Ende des Dokumentes beginnen.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  3. Ich habe schon öfters mir Ankern gearbeitet, ich kann mir vorstellen, dass es vielleicht daran liegt, dass ich die Anker dynamisch mit php erzeuge.

    Ich benutze die Seite in XAMPP, ich geb euch einfach nur den Code:

      
    <table>  
    			  
    <?php  
    			  
    $abfragen = mysql_query("SELECT * FROM mph_portfolio ORDER BY id DESC");  
    $counter = 0;  
    $rowcount = 0;  
    			  
    while($row = mysql_fetch_object($abfragen))  
    {  
    	$counter ++;  
    	if($counter == 1) {  
    		$rowcount ++;  
    		echo("<a name=\"".$rowcount."\"><tr style='vertical-align:top;'>");  
    	}  
    	?>  
    				  
    	<td>  
    				  
    	<?php  
    	if($_GET["id"] == $row->id)  
    	{ ?>  
    				  
    		<div style="width:285px;">  
    		<div id="pf_oben"><img src="<?php echo($row->image); ?>" /><a href="<?php echo($row->link); ?>" target="_blank" id="headline" style="margin-top:10px; width:243px; text-align:center;"><?php echo($row->name); ?></a></div>  
    		<div id="pf_mitte"><?php echo($row->text); ?></div>  
    		<div id="pf_unten"></div>  
    		</div>  
    					  
    	<?php } else { ?>  
    				  
    		<div style="width:285px; height:285px;">  
    		<div id="pf_oben"><img src="<?php echo($row->image); ?>" /><a href="<?php echo($row->link); ?>" target="_blank" id="headline" style="margin-top:10px; width:243px; text-align:center;"><?php echo($row->name); ?></a></div>  
    		<div id="pf_links"><?php echo($row->preview); ?></div>  
    		<a href="index.php?page=portfolio&id=<?php echo($row->id); ?>#<?php echo($rowcount); ?>" id="pf_button"></a>  
    		</div>  
    								  
    	<?php } ?>  
    				  
    	</td>  
    				  
    	<?php  
    	if($counter == 3) {  
    		echo("</tr></a>");  
    		$counter = 0;  
    	}  
    }  
    ?>  
    		  
    </table>
    
  4. Hallo,

    Um die ganze Tabellenzeile herum habe ich ein <a name="<?=$rowcount?>"> </a> eingefügt.

    das geht nicht - es ist ungültiges HTML, was die Browser dann nach eigenem Ermessen uminterpretieren oder ignorieren dürfen. Wenn ich dich richtig verstehe, hast du dann

    <table>
      <a>
       <tr>
        <td/>
       </tr>
      </a>
     </table>

    Ein a-Element kann niemals direktes Kind von table sein, und a darf niemals ein tr enthalten.

    Wozu hier überhaupt ein a-Element? Als Sprungziel (Anker) gib doch einfach dem tr-Element eine ID, die du dann anspringst. Anker mit <a name=""></a> gehören in die Bronzezeit von HTML.

    Ciao,
     Martin

    --
    Lieber Blödeleien als blöde Laien.
    1. Vielen Dank, ich wusste garnicht, dass man per id an jedes beliebige Element springen kann, hab id bisher nur für css benutzt.

      1. Vielen Dank, ich wusste garnicht, dass man per id an jedes beliebige Element springen kann, hab id bisher nur für css benutzt.

        Ich wußte das auch nicht.
        Wie macht man das denn genau?

        1. Hi,

          Vielen Dank, ich wusste garnicht, dass man per id an jedes beliebige Element springen kann, hab id bisher nur für css benutzt.

          Ich wußte das auch nicht.
          Wie macht man das denn genau?

          Man liest es nach.

          MfG ChrisB

          --
          “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]