2016-04-08 12 views
0

Ich habe den folgenden Code, der eine Tabelle mit Künstlern aus einer Datenbank füllen soll, sobald die Seite geladen wird (das funktioniert). Wenn dann nach einem Künstler gesucht wird, sollte er Künstler anzeigen, die übereinstimmen oder wenn es keine gibt, dann wird angezeigt, dass "keine Künstler gefunden wurden!" (das funktioniert gut). Das Problem ist, dass es die neue Tabelle oder Nachricht neben die Originaltabelle stellt, also habe ich etwas JavaScript hinzugefügt, um die Originaltabelle zu entfernen, bevor das PHP die neue Tabelle oder Nachricht zurückgibt, das ist das Bit, das nicht funktioniert.HTML-Tabelle mit JavaScript entfernen

<table id="artistTable"> 

<!-- PHP to display default table of all artists --> 

<?php 
include 'connection.php'; 

$stmt = $conn->prepare("SELECT * FROM artist"); 
if(!$stmt) 
    { 
     echo "Error creating SQL statement"; 
     return 1; 
    } 

$stmt->execute(); 

$stmt->bind_result($artID, $artName); 

echo "<tr>\n 
     <th>Artist ID:</th>\n 
     <th>Artist Name:</th>\n 
     <th>Options:</th>\n 
     </tr>\n"; 

while($stmt->fetch()) 
{ 
    echo "<tr>\n 
      <td>" . htmlspecialchars($artID) . "</td>\n 
      <td>" . htmlspecialchars($artName) . "</td>\n 
      <td><a href=\"\">Edit</a> - <a href=\"\">Albums</a></td>\n 
      </tr>\n"; 
} 
?> 

<!-- PHP to display table after search --> 
<?php 
include 'connection.php'; 

if(isset($_GET["artists"])) 
{ 
    /* JavaScript to remove original table */ 
    echo "<script> 
      var table = Document.getElementByID(\"artistTable\"); 
      table.parentNode.removeChild; 
      </script>"; 

    $artist = htmlspecialchars($_GET["artists"]); 

    /* Add wildcards to $artist */ 
    $artist = "%$artist%"; 

    $stmt = $conn->prepare("SELECT * FROM artist WHERE (artName LIKE ?)"); 
    if(!$stmt) 
    { 
     echo "Error creating SQL statement"; 
     return 1; 
    } 

    $stmt->bind_param('s', $artist); 
    $stmt->execute(); 

    $stmt->bind_result($artID, $artName); 

    if($stmt->fetch()) 
    { 
     echo "<tr>\n 
       <th>Artist ID:</th>\n 
       <th>Artist Name:</th>\n 
       <th>Options:</th>\n 
       </tr>\n"; 

     while($stmt->fetch()) 
     { 
      echo "<tr>\n 
        <td>" . htmlspecialchars($artID) . "</td>\n 
        <td>" . htmlspecialchars($artName) . "</td>\n 
        <td><a href=\"\">Edit</a> - <a href=\"\">Albums</a></td>\n 
        </tr>\n"; 
     } 
    } 
    else 
     echo "<p>No artists were found!</p>\n"; 
} 
?> 

</table> 
+3

Ich sehe keinen Grund für js, Ihre Seite neu zu laden, nur nicht die Tabelle anzeigen (über PHP) –

+2

Legen Sie Ihre Standard-Tabelle in eine 'else {}' Ihrer 'if (isset ($ _ GET [" Künstler "]))' – Sean

+0

@Dagon Ah danke Ich habe nicht bemerkt, dass die Seite neu geladen wurde, als es eine Suche gab. –

Antwort

0

versuchen Sie dieses $ ('# artistTable tbody'). Remove(); dann $ ('# artistTable tbody') .html ('neuer Tabelleninhalt');

Verwandte Themen