Strony forum na mojej stronie Użyj PHP, aby utworzyć tabelę, a następnie używać pętli, aby wypełnić go z bazy danych. Działa to dobrze i zawsze ma, ale próbowałem przenieść kotwicę, "link", znaczkę z tytułu wokół tytułu postu do całej pierwszej części postu w tabeli. Aby to zrobić, przechodzi przez następujące kroki:

  1. Otwórz tag tabeli [poza pętlą]
  2. Nagłówki echa [poza pętlą]
  3. Rozpocznij, podczas gdy pętla, która sprawia, że kolejna sekcja Post znaleziono dla każdego postu.
  4. Utwórz wiersz tabeli
  5. Utwórz dane tabeli.
  6. Zawartość Echo.
  7. Zamknij dane tabeli.
  8. Powtórz kroki 5-7 Po raz kolejny do sekcji Data
  9. Zamknij wiersz
  10. Zamknij stół [poza pętlą]

Powinien dokonać klikania linków na całej pierwszej sekcji i powinny znajdować się w takiej tabeli:

<table>  <--- *THIS IS BEFORE THE LOOP, IT GETS RUN ONCE ONLY* -->
    <WHILE *do this like 5 times or something*>
      <tr>
        <a *category link*>
          <td>
            *content for the 'td' which is taken from the DB*
          </td>
          <td>
            *content for the 'td' which is taken from the DB*
          </td>
        </a>
      </tr>
      <ENDWHILE>
</table>

Jednak w praktyce kończą się poza stołem, jak widać na tym zrzucie ekranu:

preview showing anchors outside of table.

Czy ktoś może to wyjaśnić i jak to naprawić?

echo '<table class="forumTable">
  <tr>
  <th>Category</th>
  <th>Last topic</th>
  </tr>';

while($row = mysqli_fetch_assoc($catResult)){
  echo '<tr>';
  echo '<a href="category.php?id=' . htmlspecialchars($row['catID']) . '"><td class="catDesc">';
  echo '<h3>' . $row['catName'] . '</h3>' . $row['catDesc'];
  echo '</td>';
  echo '<td class="catTime">';
  $getTops = "SELECT topicID, topicSubject, topicDate, topicCat FROM topics WHERE topicCat = " . $row['catID'] . " ORDER BY topicDate DESC LIMIT 1";
  $topResult = mysqli_query($connect, $getTops);
  if(!$topResult){
    echo '<p style="margin-top: 75px;">The last topic could not be displayed, please try again later.</p>';
  }
  else{
    if(mysqli_num_rows($topResult) == 0){
      echo '<p>No topics</p>';
    }
    else{
      while($topRow = mysqli_fetch_assoc($topResult)){
        echo '<a href="topic.php?id=' . $topRow['topicID'] . '">' . $topRow['topicSubject'] . '</a> at ' . $topRow['topicDate'];
      }
    }
  }
  echo '</td></a>';
  echo '</tr>';
}
echo '</table>';
0
iixCarbonxZz 16 luty 2017, 18:57

2 odpowiedzi

Najlepsza odpowiedź

Ponieważ strona źródłowa potwierdza, że kotwice są tam, gdzie ich umieściłeś, ale przeglądarka porusza je, możesz: - zawierają swoje linki wewnątrz komórki tabeli TD - Użyj alternatywnego podejścia, aby dodać link, w którym chcesz, to HTML - Wiersz tabeli jak link.

1
Community 23 maj 2017, 11:53

Czy próbowałeś uzyskać stronę nie z przeglądarki? Jak to wygląda? Myślę, że przeglądarka nie pozwala na umieszczenie <a> do <table> bezpośrednio bez <tr><td> </td></tr>

-1
edwardstock 16 luty 2017, 16:31