Ausrichtung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausrichtung

    Hallo PHP-Gemeinde,

    Ich hoffe ihr könnt mir bei einem Problem helfen.

    Ich habe eine PHP-Datei in der ich Datensätze aus der Datenbank auslese (sind ca 50 Einträge),
    Diese lasse ich dann anzeigen (while schleife)
    das script dafür sieht folgendermaßen aus :
    PHP-Code:
    while ($result=mysql_fetch_array($res,MYSQL_ASSOC)) {
    echo 
    "<tr>
            <td><a href='filelistphpdetails.php?id=
    $result[ID]'
     target='php' class='filetabelle'>
    $result[Filename]</a></td>
            <td>
    $result[Duration]</td>
            <td>
    $result[FileSize]</td>
            <td>
    $result[Resolution]</td>
            <td>
    $result[UploadDate]</td>
            <td>
              <a href='filelistphppreview.php?id=
    $result[ID]
    target='php'><img src='../images/lupe.png' alt='Preview' border='0'></a> 
            </td>
            
          </tr>"
    ;


    Nun soll beim Klick auf die Lupe ein anderer Inhalt direkt neben dem jeweiligen Eintrag angezeigt werden.

    Hoffe ihr könnt mir da weiterhelfen und danke im vorraus
    Zuletzt geändert von Postaria; 24.09.2007, 15:50.

  • #2
    Woher kommt dieser "andere" Inhalt ? Ist dazu eine weitere Serverabfrage nötig oder kennst du bereits den Inhalt, wenn die Table aufgebaut wird ?
    Schreib dir ne Javascript Funktion die als Parameter den anzuzeigenden Text erwartet und ggf die ID des Elements worin der Text angezeigt werden soll. Diese Funktion rufst du im onclick Event des Links der Lupe auf und übergibst die entsprechenden Werte.
    Falls trotzdem eine erneute Serveranfrage nötig wäre, müsstest du wohl auf eine AJAX Lösung setzen.

    Gruss

    tobi
    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

    Kommentar


    • #3
      Hallo tobi

      die while schleife habe ich in eine Tabelle gepackt die so aussieht

      table
      td
      überschriften
      table
      whileschleife wie oben im code
      ende schleife
      /table
      /td
      td
      echo "<div name='detailk' id='detailk'></div>";
      /table

      in der Datei anzuzeigenerInhalt


      PHP-Code:
      <script language="JavaScript"><!--

      var tkopf = "<? echo $tabellekopf; ?>";


      parent.frames["filelist"].document.getElementById("detailk").innerHTML = tkopf;

              
      //-->
      </script>
      So gibt er mir zwar den Inhalt immer neben den Daten aus jedoch immer nur oben !
      Bei 50 Datensätzen muss ich also immerwieder nach oben scrollen um den Anzuzeigenden Inhalt zu überprüfen

      Kommentar


      • #4
        Mach doch für jede Zeile eine zusätzliche td mit eindeutiger ID zur Anzeige der Details z.B. <td id="detail_zahl"> Mach vor der Schleife einen Zähler mit 0 und inkrementiere diesen nach jedem Schleifendurchlauf. Diesen Zähler hängst du hinten an die ID des td.
        Danach im onklick Event des Links übergibst du der Funktion den Detailtext und die ID in die der Text geschrieben werden soll.
        Die JS Funktion könnte z.B. so ausschauen
        Code:
        function showDetails(id,text){
          document.getElementById('detail_'+id).innerHTML = text;
        }
        //die Fkt würde ich so aufrufen
        <a href="filelistphppreview.php?id=$result[ID]" onclick="showDetails('deinZähler,derText);return false;" target="php">
        Und wieso arbeitest du mit Frames ? Alles was man mit Frames machen kann geht mehr oder weniger einfach auch ohne. Und die Nachteile von Frames überwiegen die Vorteile bei Weitem

        Gruss

        tobi
        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

        Kommentar


        • #5
          Hmmm... ich glaube ich habe mich einwenig Falsch ausgedrückt zumindestens klappt die Zielausgabe nicht so wie ich es eigentlich möchte.

          ich versuche mal das so zu verdeutlichen (zeichnerisch) wie ich es geplant habe.

          Tabelle
          _________________________ .. ___________
          |________|________|_______| |__________|
          |________|________|--klick--| |hier geklickt |
          |________|________|_______| |__________|

          Ich bin am ende meines Latein
          Need Help pls.
          Zuletzt geändert von Postaria; 24.09.2007, 11:18.

          Kommentar


          • #6
            kann mir denn dabei keiner Helfen ?

            Kommentar


            • #7
              Ich verstehe nicht so ganz was daran ein Problem darstellen soll. Mit ein bisschen logisch Denken kommt man da ohne Probleme zum Ziel.

              Also schildere wo es harkt, an der Logik oder am Programmierwissen ?
              "Nicht jeder Mensch kann und soll Programmieren[...]".

              Kommentar


              • #8
                Mittlerweile glaube ich das es an meinem Programmierwissen hapert.

                Nun das Problem liegt mit sicherheit das ich mit js nichts anfangen kann.
                dazu kommt noch das ich ein Projekt übernommen habe welches auf, wie oben schon zurecht kritisiert, Frames aufbaut.

                das Problem was sich mir im Prinzip stellt ist nicht die anzeige denn die funktioniert einwandfrei jedoch die Positionierung der Ergebnisse lässt zu wünschen übrig.

                Stand der Dinge :

                Datei: ansicht.htm
                Code:
                <frameset rows="*,1" frameborder="1" border="0" framespacing"0">
                 <frame name="filelist" src="filelistinhalt.php" />
                 <frame name="php" src="javascript:void(0)" />
                 </frameset>
                Datei: filelistinhalt.php
                PHP-Code:
                echo "<table><tr>";


                // Dateiliste anzeigen

                echo "<td valign='top'><table>";
                // Kopfzeile
                echo "Kopfzeile";
                //Kopfzeile Ende

                //schleife inhalt
                $i='1';
                while (
                $result=mysql_fetch_array($res,MYSQL_ASSOC)) {

                echo 
                "<tr>
                        <td><a href='filelistphpdetails.php?id=
                $result[ID]
                target='php' class='filetabelle'>
                $result[Filename]</a></td>
                        <td>
                $result[Duration]</td>
                        <td>
                $result[FileSize]</td>
                        <td>
                $result[Resolution]</td>
                        <td>
                $result[UploadDate]</td>
                        <td>
                          <a href='filelistphppreview.php?id=
                $result[ID]
                target='php'><img src='../images/lupe.png' alt='Preview' border='0'></a> 
                          <a href='filelistphpedit.php?id=
                $result[ID]'
                 target='php'><img src='../images/edit.png' border='0'></a> 
                          <a href='filelistphpdelete.php?id=
                $result[ID]'
                 target='php'><img src='../images/drop.png' border='0'></a>
                        </td>
                        
                      </tr>"
                ;

                $i$i+1;
                }

                //schleife inhalt ende

                echo "</table>";

                echo 
                "</td>";

                echo 
                "<td>";
                //echo "<div name='detailk' id='detailk'></div>";
                for ($j=1;$j<=$i;$j++){

                echo 
                "<table><tr><td id='$j'>$j<div name='detailk' id='detailk'></div></td></tr></table>"

                }

                echo 
                "</table>";


                echo 
                "<tr></table>"
                Datei:filelistpreview.php
                PHP-Code:
                <?
                $sql="SELECT * FROM files WHERE ID=$_GET[id]";
                $res=send_sql($db,$sql);
                $result=mysql_fetch_array($res,MYSQL_ASSOC);


                $tabellekopf="Hallo";


                ?>

                <script language="JavaScript"><!--
                function showDetails(id,text){
                  document.getElementById('detail_'+id).innerHTML = text;
                }

                var tkopf = "<? echo $tabellekopf; ?>";


                parent.frames["filelist"].document.getElementById("detailk").innerHTML = tkopf;

                        
                //-->
                </script>

                Ich habe also in der Datei filelistpreview.php die Variable $tabellekopf die im Prinzip die Ausgabe handelt

                in der Datei filelistinhalt.php habe ich 2 Tabellen, wobei der Inhalt der ja in der Variable $tabellekopf gesammelt wurde, in der zweiten Tabelle ausgegeben werden soll und zwar in der selben Zeile von der in der ersten tabelle aus geklickt wurde:
                Sprich wenn ich in der Ersten Tabelle in Zeile 30 klicke soll mir auch in der zweiten Tabelle in der Zeile 30 der Inhalt angezeigt werden.
                Die schleifen die mir oben empfohlen wurden habe ich schon eingebaut jedoch kriege ich die ausgabe nicht in die jeweiligen Zeilen der 2ten Tabelle. der inhalt wird immer in der ersten Zeile der 2ten Tabelle angezeigt.

                Hoffe ihr könnt mit dem euch nun vorliegenden Codeschnippsel etwas anfangen und sorry wegen der Umstände in meinen Formulierungen.
                Zuletzt geändert von Postaria; 24.09.2007, 15:49.

                Kommentar


                • #9
                  Spendiere deinem Code doch ein paar Zeilenumbrüche, bitte...
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #10
                    Sorry mehr geht net :/

                    Kommentar


                    • #11
                      du könntest, doch anstatt ne zweite tabelle anzulegen einfach ein div
                      an die stelle positionieren

                      Kommentar


                      • #12
                        Habe ich ja und nur dann funktioniert die ausgabe auch nur
                        siehe
                        filelistinhalt.php

                        PHP-Code:
                        echo "<table><tr><td id='$j'>$j<div name='detailk' id='detailk'></div></td></tr></table>"
                        die ausgabe funtioniert auch
                        wenn ich das so mache

                        PHP-Code:
                        echo "<table><tr><td id='detailk'>$j</td></tr></table>"
                        nur wie gesagt immer nur an der ersten Zeile
                        ich kriege es einfach nicht hin das ich die Abfrage auf die entsprechende Zeile bringe.

                        Kommentar


                        • #13
                          mit ein bisschen css und js denk ich mal :]
                          style="position:absolute...."

                          Kommentar


                          • #14
                            hmmm ???
                            musste mir mal genauer erklären hoffe du meinst das richtige ...

                            Kommentar


                            • #15
                              kann mir denn keiner irgend wie helfen hier ?

                              Kommentar

                              Lädt...
                              X