• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

tabellen problem

Status
Für weitere Antworten geschlossen.

clemo

Neues Mitglied
hi leute
ich will links links haben und rechts 1 text
das is leider ncht so leicht für einen anfänger wie mir

PHP:
<table border="1">
<tr><th>Befehle</th><th>Text</th></tr><tr>
<td><a href="./1.html">hi</a></td>
<td>Das is der Lange text<br>mit mehreren zeilen</td>
<tr>
<td><a href="./1.html">hi</a></td>
<tr>
<td><a href="./1.html">hi</a></td>
<tr>
<td><a href="./1.html">hi</a></td>
<tr>

leider functioniert dieser obrige entwurf nicht

der rechte text (der länger und mehrzeiliger als im beispiel sein wird) verändert die linken links!

...kann mir irgend wer helfen?
 
hi leute
ich will links links haben und rechts 1 text
das is leider ncht so leicht für einen anfänger wie mir

PHP:
<table border="1">
<tr><th>Befehle</th><th>Text</th></tr><tr>
<td><a href="./1.html">hi</a></td>
<td>Das is der Lange text<br>mit mehreren zeilen</td>
<tr>
<td><a href="./1.html">hi</a></td>
<tr>
<td><a href="./1.html">hi</a></td>
<tr>
<td><a href="./1.html">hi</a></td>
<tr>
leider functioniert dieser obrige entwurf nicht

der rechte text (der länger und mehrzeiliger als im beispiel sein wird) verändert die linken links!

...kann mir irgend wer helfen?

Hallo clemo,

Tabellen sind nicht zum Erstellen von Layouts gedacht, sondern zur Darstellung von tabellarischen Daten.

Dein Layout machst Du mit CSS.

Deine Tabelle enthält zahlreiche Fehler:
  • jede Tabellenzeile (tr) muss eine identische Anzahl Tabellenzellen (td) enthalten
  • jedes Tag, das Du öffnest, musst Du auch wieder schließen, z.B.
    <tr>
    <td><a href="#"></a></td>
    <td><a href="#"></a></td>
    </tr>
Grüße
Bernhard
 
na es is tabelle


ich will

ausdruck1 | aUSDRUCK3 ist so und so
ausdruck2 | er......info
ausdruck3 |
... |
...
...
...


wenn man dann z.b. auf ausdruck2 klickt wird die seite neu geladen und es wird ausdruck 2 erklärt

ich hab das ganze mit ftp und datenbank und es functioniert auch und nicht die tabelle!!
 
Hast du dir denn die Erklärung von Bernhard angeschaut und deinen Code dementsprechend geändert?

Aus deiner Erklärung werde ich nicht wirklich schlau, es soll also ein Menü sein, wo ist das Problem?

Ein Link zu deiner Seite und eine ausführliche Problembeschreibung würden helfen.
 
Code:
<table>
  <tr>
    <td>Link1</td>
    <td rowspan="y">Der Infotext</td>
  </tr>
  <tr>
    <td>Link2</td>
  </tr>
  <tr>
    <td>Link3</td>
  </tr>
</table>
Das y in Zeile 4 entspricht der Anzahl aller Links, in meinem Beispiel also 3.

Dass der Infotext dann eingeblendet wird, wenn auf einen Link geklickt wird, lässt sich aber nicht mit reinem HTML lösen. Da sollte man auf JavaScript oder PHP zurückgreifen.
 
ja ich weiß
aber ich kann nicht SO gut css....
aber ich lerns mir eh mal..und dann änder ich alles um..daweil kann ichs no net
 
Ich will Dich nicht ermutigen oder beleidigen, aber was ist das nur für eine Ausrede? "Ich will ein gutes Ergebnis erzielen, beherrsche die Techniken, die man dafür braucht aber nicht, also murcks ich einfach mit ungeeigneten Methoden rum!".

Wenn Du kein CSS kannst, dann musst Du es Dir wohl aneignen. Ist ja nicht so, dass es keine Tutorials öder kompetente Helfer in diesem Forum gäbe, die Dich dann auch noch im Regen stehen ließen...

Vor allem, wenn Du selbst zugibst, dass Du weißt, dass man es so nicht macht, wie Du es machst.

Also los, ran an CSS! :-)

Viel Erfolg,
-Efchen
 
du hast eh recht....
aber wie lange braucht man für css ca?
weil ich hab mir jetzt grad php so gelernt das ich nicht mehr jeden begriff von anfang an nachgooglen muss sondern eig. schon kleine Programme ohne nachschauen schreiben kann

natürlich schauen diese dof aus wenn ich sie nicht CSS verbessere also vor hab ich es eh..
warscheinlich kommentes wochenende oder villeicht fang ich schon morgen an da is feiertag!

Code:
<table>
  <tr>
    <td>Link1</td>
    <td rowspan="y">Der Infotext</td>
  </tr>
  <tr>
    <td>Link2</td>
  </tr>
  <tr>
    <td>Link3</td>
  </tr>
</table>
Das y in Zeile 4 entspricht der Anzahl aller Links, in meinem Beispiel also 3.

Dass der Infotext dann eingeblendet wird, wenn auf einen Link geklickt wird, lässt sich aber nicht mit reinem HTML lösen. Da sollte man auf JavaScript oder PHP zurückgreifen.



irgend was kann da nicht stimmen
wo gib ich die überschrift rein?
muss das mit y gemacht werden gleich am anfang weil das ist für mich ein problem aber fals keine notlösung gibt.is egal doch kannst du mir die tabelle nochmal schicken..und mir das ganauer erklären..
DANKE
 
Zuletzt bearbeitet von einem Moderator:
aber wie lange braucht man für css ca?
Das kann ich Dir ziemlich genau sagen: So lange, bis Du fertig bist :-)

Der eine lernt schneller, der andere langsamer. Manch einer, der heute glaubt, CSS zu können, versteht nichtmal HTML und weiß mit dem Begriff "Semantik" nichts anzufangen. Wiederum andere blicken sofort durch.

CSS an sich ist relativ einfach, je nach Anforderung an das Design wirds schwieriger. Essenziell für CSS-Design ist aber semantisch sinnvolles, valides HTML. Damit tun sich die meisten viel schwerer, obwohl es eigentlich extrem simpel ist - für viele zu einfach, sie machen es sich schwieriger, als es ist, weil sie Dinge von HTML erwarten, für die HTML nicht gemacht ist.
 
das rad immer wieder neu zu erfinden ist gerade in php ja unnötig, da du ein template ja immer wieder verwenden kannst. der geringe mehr aufwand zum schreiben des codes, rechnet sich, wenn du dein template zum zweiten mal einsetzt.

ausserdem kann man für deine anforderung ja z.b. ein kostenloses template herunter laden und mit php anpassen (sprich die links und den content ausgeben).
 
oje

ok functioniert trotzdem nicht..
PHP befehle :: My-Script.at

wie man hier im test sieht..wird der erste link immer so angezeigt das sich die genze tabelle verschiebt

schau ich mir aber den quellcode vom link1 und einem anderen an so unterscheiden diese sich nur vom <b></b> im jeweiligen aktuellen link
hat wer eine erklärung...?oder besser eine lösung..

DANKE
 
dann ist da ein fehler in deinem php-script beim erstellen (zusammenbauen) der links. irgendwie werden da "sinnlose" <tr> tags gesetzt.

schnelles script, die mit befehl übergebenen namen müssen als php datei existieren.

PHP:
<?PHP
// rowspan tabelle
?>

<html>
  <head>
    <title>
      PHP befehle
      :: My-Script.at
    </title>
  </head>
  <body>

<table border="0">
<tr>
 <td><b>Befehle</b></td>
 <td><b>Text</b></td>
</tr>
<tr>
  <td></td>
  <td rowspan="11" valign="top"><code><span style="color: #000000"><?PHP include($_GET['befehl'].".php"); ?></span></code></td>
</tr>
  <td><a href="?befehl=Kopie_von_echo">Kopie von echo</a></td>
</tr>
<tr>
  <td><a href="?befehl=echo">echo</a></td>
</tr>
<tr>
  <td><a href="?befehl=if-bedingung">if-bedingung</a></td>
</tr>
<tr>
  <td><a href="?befehl=link1">link (1)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link2">link (2)</a></td>
</tr>
<tr>
   <td><a href="?befehl=link3">link (3)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link4">link (4)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link5">link (5)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link6">link (6)</a></td>
</tr>
<tr>
  <td><a href="?befehl=linkx">link</a></td>
</tr></table>
</body>
</html>
rowspans nicht beliebig sondern bitte genau setzen. bei10 zeilen, auch nur 10 zeilen rowspan setzen.

vermeide leerzeichen und sonderzeichen in den parametern, es gibt genug browser, die dann falsch interpretieren.
 
dann ist da ein fehler in deinem php-script beim erstellen (zusammenbauen) der links. irgendwie werden da "sinnlose" <tr> tags gesetzt.

schnelles script, die mit befehl übergebenen namen müssen als php datei existieren.

PHP:
<?PHP
// rowspan tabelle
?>

<html>
  <head>
    <title>
      PHP befehle
      :: My-Script.at
    </title>
  </head>
  <body>

<table border="0">
<tr>
 <td><b>Befehle</b></td>
 <td><b>Text</b></td>
</tr>
<tr>
  <td></td>
  <td rowspan="11" valign="top"><code><span style="color: #000000"><?PHP include($_GET['befehl'].".php"); ?></span></code></td>
</tr>
  <td><a href="?befehl=Kopie_von_echo">Kopie von echo</a></td>
</tr>
<tr>
  <td><a href="?befehl=echo">echo</a></td>
</tr>
<tr>
  <td><a href="?befehl=if-bedingung">if-bedingung</a></td>
</tr>
<tr>
  <td><a href="?befehl=link1">link (1)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link2">link (2)</a></td>
</tr>
<tr>
   <td><a href="?befehl=link3">link (3)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link4">link (4)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link5">link (5)</a></td>
</tr>
<tr>
  <td><a href="?befehl=link6">link (6)</a></td>
</tr>
<tr>
  <td><a href="?befehl=linkx">link</a></td>
</tr></table>
</body>
</html>
rowspans nicht beliebig sondern bitte genau setzen. bei10 zeilen, auch nur 10 zeilen rowspan setzen.

vermeide leerzeichen und sonderzeichen in den parametern, es gibt genug browser, die dann falsch interpretieren.

sorry da komm ich jetzt nicht mit
also der rowspan wärt stimmt nicht?
es heißt nicht $_GET['befehl'] . '.php' sonder .TXT
 
es wäre bedeutend einfacher, wenn du deinen php-code posten würdest.

ob du txt includest oder html oder php kann ich nur erahnen (der code...:roll: ), ist aber auch nebensächlich. wesentlich ist, dass du in dem td den text aufrufst. ich würde das eventuell sogar aus einer datei auslesen und dann über eine datei ausgeben, aber wie man das macht ist ja geschmackssache.

irgend wo, wird(werden), wenn man auf den ersten link klickt, ein (mehrere) <tr> gesetzt. dann stimmt dein rowspan wert nicht mehr.

so wie ich den code gepostet habe klappt es jedenfalls bei mir.
 
klar

PHP:
<html>
  <head>
    <title>
      <?php
        if($_GET['befehl'] == '') {
          echo 'PHP befehle';
        }else{ 
          
          $file = $_GET['befehl'] . '_ok.txt';
          
          if(is_file($file)){
            echo $_GET['befehl'];
          }else{
            echo 'Befehl nicht gefunden';
          }

          
        }
      ?> 
      :: My-Script.at
    </title>
  </head>
  <body>
    <?php
      //PHP codes
      $y= 0;
      $Lcounter = 1;
      echo "<table border=\"0\">";
        echo "<tr><th><b>Befehle  </b></th><th><b>  Text</b></th></tr><tr>";
        $ordnername = "*_ok.txt";
        foreach (glob($ordnername) as $filename) {
        $array_file = explode("_ok.",$filename);
        if ($array_file[0] ==$_GET['befehl']){
          if ($Lcounter == 1) {
            $firstlink = "\n<tr>\n<td><a href=\"?befehl=" . $array_file[0] . "\"><h3>". $array_file[0] . "</h3></td>\n</tr>";
          }else{
            $ausgabe = $ausgabe . "\n<tr>\n<td><a href=\"?befehl=" . $array_file[0] . "\"><h3>" . $array_file[0] . "</h3></a></td>\n</tr>";
          }
        }else{
          if ($Lounter == 1){
            $firstlink = "\n<tr>\n<td><a href=\"?befehl=" . $array_file[0] . "\">" . $array_file[0] . "</a></td>\n<tr>";
            }else{
          $ausgabe = $ausgabe .  "\n<tr>\n<td><a href=\"?befehl=" . $array_file[0] . "\">" . $array_file[0] . "</a></td>\n</tr>";
          }
        }

      if($ger==''){
        if ($_GET['befehl'] != ''){
        $str=file_get_contents($_GET['befehl'] . "_ok.txt");
        $str=htmlentities($str);
        $str=str_replace("\n","<br />",$str);
        //highlight_string($str);
        $ger = 'nichtleer';
      }
      }
      $Lcounter = $Lcounter + 1;
      $y = $y + 1;
}
echo "\n\n</tr></table>\n";
echo "<table>\n  <tr>";
 echo " \n  <td> " . $firstlink . "</td>";
 echo   "\n<td rowspan=\"" . $y . "\">";
 highlight_string($str);
echo "</td>";
 echo "\n </tr><tr><td> </td></tr>";
 echo $ausgabe;
echo "</table>";


?>
  </body>
</html>


ich hoffe er ist ausagekräftig dar ich mir meist zu wenig zeit für komentare nehme
 
ich habe mir den code nun mal angesehen, habe aber schon nach ein paar zeilen aufgehört zu suchen, denn:

was du da machst ist hochgradig unsicher, du prüfst nur, ob $_GET['befehl'] ein file ist, damit kann man im schlimmsten fall deinen server entern und belibige scripte ausführen. du solltest prüfen, ob das file in einem bestimmten verzeichnis liegt (also mit einem absoluten pfad).

ausserdem setzt du dein rowspan zu spät. ich hänge dir mal einen code an, der etwas sicherer sein sollte und bei mir problemlos funktioniert. ausserdem habe ich da gleich den aktiven link auf css umgebaut. die daten liegen in einem unter verzeichnis, dass man z.b. mit .htaccess vor direktem zugriff schützen kann, eine dateiendung ist auch nicht mehr notwendig (könnte aber trotzdem sein. ich hoffe es ist zumindest ein ansatz für dich.

PHP:
<?PHP

?>

<html>
  <head>
    <title>
      PHP befehle
      :: My-Script.at
    </title>
  </head>
  <body>

<?PHP

$links = file("linkliste.txt"); // die links ausgeben

$str = "keine daten gefunden";
if(file_exists("daten/".$_GET['befehl'] ))
{
    $str = file_get_contents("daten/".$_GET['befehl']);
}

/**
 *
 *  bearbeitung und prüfung des strings
 *
 *
**/

?>
<table class="anzeige1" border="1" width="90%">
<tr>
 <td class="header" width="20%">Befehle</td>
 <td class="header" >Text</td>
</tr>
<tr>
 <td></td>
 <td rowspan="<?PHP echo (count($links) + 1); ?>" valign="top"><code><span style="color: #000000"><?PHP echo $str; ?></span></code></td>
</tr>

<?PHP
for($i = 0; $i < count($links); $i++)
{
    $werte = explode("\t",$links[$i]); // die einzelnen csv-daten zeilenweise auslesen
    if($_GET['befehl'] == trim($werte[1])) $class="aktiv";
    else $class="inaktiv";

    echo "<tr>\n <td class=\"".$class."\"><a href=\"".$_SERVER['PHP_SELF'].'?befehl='.trim($werte[1]).'">'.trim($werte[0])."</a></td>\n</tr>\n";
}
echo "</table>\n</body>\n</html>";
eine datei (bei mir heisst sie linkliste.txt) muss im stammverzeichnis vorhanden sein, die als erstes feld den linknamen und als zweites feld den dateinamen enthalten muss. da ich mit csv dateien arbeite, sind die werte durch TAB getrennt.

Code:
link name1    bla
link name2    bla2
link name3    bla3
link name4    bla4
im unterverzeichnis daten liegen dann die dateien mit den inhalten (hier also bla, bla2, bla3 etc.....)

wenn du dir nun noch eine css datei zusammen bastelst, die die klassen tabelle1, aktiv, inaktiv und header beinhaltet, kannst du deine tabelle schon mal per css anpassen.

wie gesagt, nur ein vorschlag.
 
sorry es scheint so als ob du dir viel mühe gegeben hast
und auch viel nachgedacht hast
doch leider keine ahnung was du meinst ):
kannst dus mir nochmal erklären
sorry,DANKE
clemo
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben