Ich habe ein Problem eher konzeptioneller Natur.
Es gibt zwei Skripte. In dem einem wird eine Auswahl getroffen, diese Auswahl wird an ein zweites Skript übergeben. Dieses zweite Skript führt mit Hilfe dieser Auswahl eine Abfrage durch und stellt das Ergebnis in einer Tabelle dar. In dieser Tabelle gibt es für jede Zeile Links, um den entsprechenden Datensatz anzuzeigen, zu bearbeiten oder zu löschen. Anzeigen und bearbeiten ist kein Problem, da dazu weitere Skripte aufgerufen werden. Probleme habe ich mit dem Löschen.
Bisher wird dazu ein drittes Skript aufgerufen, welches den Datensatz löscht und dann eine separate Seite anzeigt. Von dort kann man jetzt zur Startseite zurück oder, wenn man zurück navigiert zur Seite mit der Ergebnistabelle der Abfrage. Das ist unschön.
Was ich gerne hätte: Man löscht einen Datensatz und dann wird wieder die Seite mit der aktualisierten Ergebnistabelle geladen. Nur wie bekomme ich das hin? Die Daten werden per Post an das zweite Skript übergeben.
Etwas Quellcode:
Erste Skript:
Code:
<?php
$
query = "SELECT name FROM adr_kategorien GROUP BY name ASC";
$resultset = mysql_query($
query);
echo "<form action='katlist.php' method=\"POST\">\n";
echo "<select name='kategorie' size='1'>\n";
echo "<option value=''>keine Auswahl</option>\n";
while($row = mysql_fetch_object($resultset))
{
echo "<option value='".$row->name."'>".$row->name."</option>\n";
}
echo "</select>\n";
echo "<input type=\"submit\" value=\"OK\"></input>\n";
echo "</form>\n";
?>
Zweite Skript:
Code:
$
query = "SELECT a.*, k.name as k_name
FROM adressen a
LEFT OUTER JOIN adr_kategorien k on k.id = a.kategorie_id
WHERE k.name='".$kat."'
ORDER BY a.gesch_firma, a.name, a.vorname";
$resultset = mysql_query($
query);
if (!$resultset)
{
echo "<p class='error'>".mysql_error()."</p>";
mysql_close($connection);
include("footer.html");
die();
}
echo "<table>";
echo "<tr><th>Nr</th><th>Name</th><th>Vorname</th><th>Firma</th><th>Aktionen</th><tr>";
$nr = 1;
while($row = mysql_fetch_object($resultset))
{
echo "<tr>
<td>".$nr."</td>
<td>".$row->name."</td>
<td>".$row->vorname."</td>
<td>".$row->gesch_firma."</td>
<td>
[
url='./details.php?action=show&id=".$row->id."'][img]./images/view.jpg[/img][/
url]
[
url='./form.php?id=".$row->id."'][img]./images/edit.jpg[/img][/
url]
[
url='./delete.php?id=".$row->id."'][img]./images/delete.jpg[/img][/
url]
</td>
</tr>\n";
$nr++;
}
echo "</table>";
Wie man sieht, wird zum Löschen das Skript
delete.php aufgerufen. Ich würde jetzt aber gerne ohne den Umweg über das dritte Skript einen Datensatz löschen und die Ergebnistabelle wieder anzeigen.