Entwickler-Ecke

Beschreibungssprachen - Website wird komisch dargestellt


Csharp-programmierer - Di 06.12.16 18:54
Titel: Website wird komisch dargestellt
Hallo Leute,
jetzt funktioniert die Website grundlegend. Die Daten werden jetzt schön auf der Website dargestellt. Hier ein Link (es soll keine Werbung sein, sondern das ich das Problem seht): https://mainlysoft.com/Mainlynet/Website/nachrichten.php Wenn ihr sie seht, fallt nicht um. Das ist sozusagen der Prototyp, aber erstmal sollen alle PHP Scripte funktionieren.

Wie man sieht[js], wird über dem ersten Label eine mini kleine Tabelle erzeugt, und unter den Labels wird der erste Datensatz nicht richtig dargestellt. Alle anderen schon. Hier ist der Quelltext:

HTML-Dokument
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
<div class="wsite-section-elements">
        
          <script>
              function ElementClicked(Object) {
                var doc = Object;
                var c = doc.getElementsByTagName('span');
                var e = null;
                
                for (var i = 0; i < c.length; i++) {
                if (c[i].className == 'dataclass') {
                  e = c[i];
                  break;
                }
                }

                if (e != null) {
                alert(e.innerHTML);
                }
              }
          </script>

          
          <table>
          <tr>
            <td><div class="paragraph">Ungelesene Nachrichten</div></td>
          </tr>
          <div class="wsite-spacer" style="height:10px;"></div>
          <tr>
            <td><div class="paragraph">Versendete Nachrichten</div></td>
            <td> </td>
          </tr>
          <tr>
            <div>
              <?php
                $conn = new mysqli($servername$username$password$dbname);
                if ($conn->connect_error) {
                  die("Connection failed: " .$conn->connect_error. "Hallo");
                }

                $sql = "SELECT * FROM `MainlysoftBenutzer`";
                $result = $conn->query($sql);
                if ($result->num_rows > 0) {
                  while($row = $result->fetch_assoc()) {
                  echo "<div class='item' onclick='ElementClicked(this);'>";
                  echo "<table>";
                  echo "<tr>";
                  echo "<td><label><font color='#818181' size='+2' face='calibri'><span class='dataclass'>" .$row["name"]. "</span></label></font></td></tr>";
                  echo "<tr><td><label><font color='#818181' size='+1' face='calibri'>" .$row["email"]. "</label></font></td>";
                  echo "</tr>";
                  echo "</table></div><br>";
                  } 
                } 
                else
                {
                  echo "Access danied";
                }
                $conn->close();
              ?>
 
            </div>
          </tr>
          </table>
          </div>


Und wie macht man das so, dass die Items rechts neben den Labels plaziert werden?


jfheins - Di 06.12.16 21:03

bei der Seite kommt bei mir:
Zitat:
You don't have permission to access /Mainlynet/Website/nachrichten.php on this server.
Server unable to read htaccess file, denying access to be safe


Davon abgesehen, wundert mich das gar nicht ^^
Deine Schachtelung von Tags:

HTML-Dokument
1:
2:
3:
4:
5:
6:
<tr>
<div>
<div class='item' onclick='ElementClicked(this);'>
<table>
<tr>
<td><label><font><span></span></label></font></td></tr>


Ist ja durcheinander :wink:
In einem <tr> (das ist eine Tabellenzeile) darf NUR ein <td> (Tabellenzelle) vorkommen (oder auch th). Entweder musst du für das div eine Zelle machen oder den Eventhandler auf die Zelle legen.
Dann Hast du eine Tabelle in einer Tabellenzelle - tut das Not?
Und schließlich benutzt du font-Tags (inzwischen veraltet, mach lieber eine CSS Klasse draus) und schachtelst den auch wieder falsch: "<label><font>...</label></font>"


Csharp-programmierer - Di 06.12.16 21:22

Ja es gab ein Problem mit dem Rechenzentrum von dem Hoster. Er wird das bald beheben :(


Csharp-programmierer - Di 06.12.16 21:32

So jetzt ist das Problem behoben. Jetzt möchte ich nur, dass die Items jetzt rechts neben den Labels positioniert werden. Wie mache ich das?


HTML-Dokument
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
<table>
          <tr>
            <td><div class="paragraph">Ungelesene Nachrichten</div></td>
          </tr>
          <tr>
            <div class="wsite-spacer" style="height:10px;"></div>
            <td><div class="paragraph">Versendete Nachrichten</div></td>
          </tr>
          <tr>
            <td rowspan="2"><div>
              <?php
                $conn = new mysqli($servername$username$password$dbname);
                if ($conn->connect_error) {
                  die("Connection failed: " .$conn->connect_error. "Hallo");
                }

                $sql = "SELECT * FROM `MainlysoftBenutzer`";
                $result = $conn->query($sql);
                if ($result->num_rows > 0) {
                  while($row = $result->fetch_assoc()) {
                  echo "<div class='item' onclick='ElementClicked(this);'>";
                  echo "<table>";
                  echo "<tr>";
                  echo "<td><label><font color='#818181' size='+2' face='calibri'><span class='dataclass'>" .$row["name"]. "</span></label></font></td></tr>";
                  echo "<tr><td><label><font color='#818181' size='+1' face='calibri'>" .$row["email"]. "</label></font></td>";
                  echo "</tr>";
                  echo "</table></div><br>";
                  } 
                } 
                else
                {
                  echo "Access danied";
                }
                $conn->close();
              ?>
 
            </div></td></tr>
          </table>


Delete - Mi 07.12.16 01:10

- Nachträglich durch die Entwickler-Ecke gelöscht -


Csharp-programmierer - Mi 07.12.16 16:21

Jetzt funktioniert es grob, wie ich es möchte. Die Items werden rechts neben den Labels positioniert. Aber jetzt sind die labels so weit voneinander entfernt. Wie löst man das jetzt?

HTML-Dokument
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
<table>
          <tr>
            <td><div class="paragraph">Ungelesene Nachrichten</div></td>
            <td rowspan="2"><div>
              <?php
                if ($result->num_rows > 0) {
                  while($row = $result->fetch_assoc()) {
                  echo "<div class='item' onclick='ElementClicked(this);'>";
                  echo "<table>";
                  echo "<tr>";
                  echo "<td><label><font color='#818181' size='+2' face='calibri'><span class='dataclass'>" .$row["name"]. "</span></font></label></td></tr>";
                  echo "<tr><td><label><font color='#818181' size='+1' face='calibri'>" .$row["email"]. "</font></label></td>";
                  echo "</tr>";
                  echo "</table></div><br>";
                  } 
                } 
                else
                {
                  echo "Access danied";
                }
                $conn->close();
              ?>
 
          </tr>
          <tr>
            <div class="wsite-spacer" style="height:10px;"></div>
            <td><div class="paragraph">Versendete Nachrichten</div></td>
          </tr>
          </table>


Csharp-programmierer - Mi 07.12.16 17:33

Jetzt sind auch die Buttons näher bei einander, aber die sollen ganz oben bleiben. Ich denke mal sie positionieren sich immer in der Mitte von der Tabelle. Wie kann man das beheben? Sie sollen immer ganz oben blieben


Csharp-programmierer - Mi 07.12.16 22:29

Wie ihr jetzt sehen könnt, wurden die Seiten geschützt und nur zugänglich gemacht, wenn man sich einloggt. Das funktioniert bereits problemlos über die PHP Session. In dieser Variable ist der Username enthalten. Wie ihr aber sehen konntet, war eine Seite mit einer Tabelle (3 Spalten) ausgerüstet. Es gab auch Schaltflächen, wo man wählen kann, welche Nachrichten angezeigt werden. Wenn man nun auf bsp. alle ungelesenen Nachrichten zugreifen möchte, soll ein PHP Script aktiviert werden, der alle Daten ausließt und auf den DIV darstellt. Der andere Schalter soll nun alle versendeten Nachrichten anzeigen. Dann muss ein anderer PHP Script aktiviert werden, der dann alle Daten darstellt. Wie funke ich diese Scripte an? Bzw. Ich hatte ja die PHP Schleife in dem DIV, das geht ja jetzt nicht mehr. Wie kann ich das jetzt machen?