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

Löschen-Button in Tabelle

BDC

Neues Mitglied
Hallo Zusammen,
ich würde gerne einen "Lösch-Button" in jeder Zeile haben, welche dann auf die loeschen.php weiterleitet.
Hier soll dann eine Abfrage erscheinen z.B. ob der Datensatz wirklich gelöscht werden soll.

Die Anzeige der Button funktioniert, jedoch bekomme ich die ID nicht an das loeschen Formular übertragen.
Ich lese seit Stunden im Internet und habe diverse Tutorials durchgeblättert, jedoch finde ich keine Lösung.
Vielleicht mag sich hier mal jemand dazu äußern.

Hier mal der Code der Hauptseite (angebote.php):
HTML:
<?php
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors','On');
?>
<?php require ("header.php"); ?>
<title>NuBIS - Angebote </title>
    
            <div id="content">   
                            
                <table class="beispiel" cellspacing="0" cellpadding="0">
                                

                    <caption>Angebote</caption>

                    <thead><tr>
                    <th>ID</th>
                    <th>Datum der Anfrage</th>
                    <th>Bearbeiter</th>
                    <th>Postleitzahl</th>
                    <th>Bauunternehmen/Bauherr</th>
                    <th>Bauvorhaben</th>
                    <th>Abgabetermin</th>
                    <th>Summe</th>
                    <th>Art</th>
                    <th>Abgegeben</th>
                    <th>Beauftragt</th>
                    </tr></thead>

                    <tbody>
                            <?php
                            $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

                            $sql = "SELECT * FROM angebote ORDER BY ID LIMIT 30";
                            foreach ($pdo->query($sql) as $row) {
                            ?>
                                    <tr>
                                    <td><?php echo $row['ID'] ?>
                                    <td><?php echo $row['Datum_Anfrage'] ?></td>
                                    <td><?php echo $row['Bearbeiter'] ?></td>
                                    <td><?php echo $row['Postleitzahl'] ?></td>
                                    <td><?php echo $row['Bauunternehmen_Bauherr'] ?></td>
                                    <td><?php echo $row['Bauvorhaben'] ?></td>
                                    <td><?php echo $row['Abgabetermin'] ?></td>
                                    <td><?php echo $row['Summe'] ?></td>
                                    <td><?php echo $row['Art'] ?></td>
                                    <td><?php echo $row['Abgegeben'] ?></td>
                                    <td><?php echo $row['Beauftragt'] ?></td>
                                    </td><td><form action='' method="get" name="loeschen">
                                             <input type='hidden' name='id' value='$row->ID'  '/>
                                              <input type="image" src="img/loeschen.png" onClick="window.open('loeschen.php?id=<?php echo $row['ID']; ?> ?row->ID','Löschen', 'top=100','left=150','width=820, height=400, toolbar=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes')"" alt="Löschen"/>
                                              <input type="image" src="img/bearbeiten.png" alt="Löschen"/>
                                            </form>
                                    </tr><?php } ?>

print '<center><a href="view.php?id='.$row['ID'].'" class="buttonize">View</a></center>';
                    </tbody>

                </table>
            </div>

     </body>
<footer>
<?php require ("footer_angebote.php"); ?>     
</footer>
</html>
 
Grundlagen!
Im Hidden Tag wird die ID bereits im Formular korrekt übergeben, allerdings sendest du das Formular nicht an loeschen.php (action=???). Im onklick Event ist ein gefrickel und folglicher Fehler mit den single Quotes.
Entweder du beseitigst den Syntaxfehler oder besser, du machst es so:

HTML:
<form action='' method="POST" action="loeschen.php">
<input type='hidden' name='id' value="<?php echo $row['ID']; ?>">
<input type="SUBMIT" name="delete" value="Loeschen">
und wertets nach $_POST['id'] (in Formularen Immer POST auswerten!) aus.
 
Hallo,
vielen Dank für die Antwort.
Entschuldige bitte den nicht so tollen Code aber bin gerade erst angefangen und probiere viel.
Ich würde natürlich gerne das Image benutzen um auf die nächste Seite zu geraten.
Dieses wurde in deinem Code aber nicht berücksichtigt. Ist es dennoch möglich ?

Zudem habe ich gerad einen anderen Lösungsansatz begonnen:
Hier mal der Code:
HTML:
<?php
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors','On');
?>
<?php require ("header.php"); ?>
<title>NuBIS - Angebote </title>
   
            <div id="content">  
                           
                <table class="beispiel" cellspacing="0" cellpadding="0">
                               

                    <caption>Angebote</caption>

                    <thead><tr>
                    <th>ID</th>
                    <th>Datum der Anfrage</th>
                    <th>Bearbeiter</th>
                    <th>Postleitzahl</th>
                    <th>Bauunternehmen/Bauherr</th>
                    <th>Bauvorhaben</th>
                    <th>Abgabetermin</th>
                    <th>Summe</th>
                    <th>Art</th>
                    <th>Abgegeben</th>
                    <th>Beauftragt</th>
                    </tr></thead>

                    <tbody>
                            <?php
                            $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

                            $sql = "SELECT * FROM angebote ORDER BY ID LIMIT 30";
                            foreach ($pdo->query($sql) as $row) {
                            ?>
                                    <tr>
                                    <td><?php echo $row['ID'] ?>
                                    <td><?php echo $row['Datum_Anfrage'] ?></td>
                                    <td><?php echo $row['Bearbeiter'] ?></td>
                                    <td><?php echo $row['Postleitzahl'] ?></td>
                                    <td><?php echo $row['Bauunternehmen_Bauherr'] ?></td>
                                    <td><?php echo $row['Bauvorhaben'] ?></td>
                                    <td><?php echo $row['Abgabetermin'] ?></td>
                                    <td><?php echo $row['Summe'] ?></td>
                                    <td><?php echo $row['Art'] ?></td>
                                    <td><?php echo $row['Abgegeben'] ?></td>
                                    <td><?php echo $row['Beauftragt'] ?></td>
                                    </td><td><?php print '<center><a href="ansehen.php?id='.$row['ID'].'" class="buttonize">Bearbeiten</a></center>'; ?>
                                    </tr><?php } ?>

                    </tbody>

                </table>
            </div>

     </body>
<footer>
<?php require ("footer_angebote.php"); ?>    
</footer>
</html>

nun übergebe ich die ID innerhalb der URl was auch funktioniert.
Allerdings soll auf der ansehen.php die Variable $Daten leer sein.
$_GET hat aber die ID.
Ich versteh nur nicht warum das so ist.

Code zu ansehen.php:
HTML:
<?php
error_reporting(E_ALL | E_NOTICE);
ini_set('display_errors','Off');
?>
<!doctype html>
<html lang="de">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="css/style.css">
        <title>Datensatz bearbeiten</title>
  </head>
       
<?php
$daten = $_GET["id"];
if (!empty($_GET)) {
       
}
else {
        print "SYSTEM-FEHLER Die Variable GET ist leer";
}
if (!empty($Daten)) {
       
}
else {
        print "SYSTEM-FEHLER Die Variable Daten ist leer";
}
?>

<div id="content">  
                           
                <table class="beispiel" cellspacing="0" cellpadding="0">
                               

                    <caption>Angebote</caption>

                    <thead><tr>
                    <th>ID</th>
                    <th>Datum der Anfrage</th>
                    <th>Bearbeiter</th>
                    <th>Postleitzahl</th>
                    <th>Bauunternehmen/Bauherr</th>
                    <th>Bauvorhaben</th>
                    <th>Abgabetermin</th>
                    <th>Summe</th>
                    <th>Art</th>
                    <th>Abgegeben</th>
                    <th>Beauftragt</th>
                    </tr></thead>

                    <tbody>
                            <?php
                            $pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');

                            $sql = "SELECT * FROM users WHERE id = $daten";
                            foreach ($pdo->query($sql) as $row) {
                            ?>
                                    <tr>
                                    <td><?php echo $row['ID'] ?>
                                    <td><?php echo $row['Datum_Anfrage'] ?></td>
                                    <td><?php echo $row['Bearbeiter'] ?></td>
                                    <td><?php echo $row['Postleitzahl'] ?></td>
                                    <td><?php echo $row['Bauunternehmen_Bauherr'] ?></td>
                                    <td><?php echo $row['Bauvorhaben'] ?></td>
                                    <td><?php echo $row['Abgabetermin'] ?></td>
                                    <td><?php echo $row['Summe'] ?></td>
                                    <td><?php echo $row['Art'] ?></td>
                                    <td><?php echo $row['Abgegeben'] ?></td>
                                    <td><?php echo $row['Beauftragt'] ?></td>
                                    </td><td>
                                    </tr><?php } ?>

                    </tbody>

                </table>
 
Hallo

Kein Problem, dazu sind Foren da....

es sollte funktionieren, wenn man statt des Input type="submit" einen Input type="image" setzt, allerdings bin ich nicht sicher, wie der W3C das heute sieht. Eine CSS-Formatierung ist aber auch möglich

also a:
<input type="image" src="bb/wkorkein.gif" alt="Loeschen">

oder b:
mit CSS über:
input[type="submit"]
{
background-image:url(bb/wkorkein.gif);
}
 
Doch, funktioniert, gerade getestet.

PHP:
<?php
?>
<form action='loeschen.php' method="POST">
<input type='hidden' name='id' value='3'>
<input type="image" src="img/arechts.gif" alt="Löschen">
</form>

loeschen.php
PHP:
<?php
echo '<pre>';
    print_r($_POST);
echo '</pre>';
 
Zurück
Oben