Daten aus Dropdown auswählen-Inhalt löschen

G

glen

Hiho ! Erstmal mein Code ^^
.

PHP:
<?
....

// FRIEND LÖSCHEN

if(isset($_POST["del"]))
{ 
$freund1 = $_SESSION['user'];
$freund2 = $_POST["freund2"];  // $_POST["dfriend"]; geht auch nicht
$del = mysql_query("DELETE FROM befriend WHERE freund1 = '$freund1' AND freund2 = '$freund2'");
$de2 = mysql_query("DELETE FROM befriend WHERE freund1 = '$freund2' AND freund2 = '$freund1'");

header("Location: friends.php");
exit;
}

...

while ($dfriends = mysql_fetch_array($listf))
{
echo "<select size='1' scrolling='yes' name='dfriend'>";
echo "<option value='".$dfriends['freund2']."'>".$dfriends["freund2"]."</option>";

echo "</select></td>";

echo "<td><form method='post' action='friends.php'>";
echo "<input type='submit' name='del' value='Löschen'>   </form></td></tr>";
echo "</table>";
}
?>


So... ^^ Unten wird mir halt per While-Schleife alles aus der DB ausgegeben, das funktioniert auch prima. Wenn ich etwas ausgesucht habe aus dem Dropdown und auf den Button klicke soll er (der obere Code-teil)
das ausgewählte löschen. Halt 2 mal, weil es auch 2 mal in der DB drinsteht - aber nicht gleich. Nur irgendwie löscht er es nicht. Anscheinend wird da etwas nicht richtig übergeben. Ich habe mir auch schon alles einmal ausgeben lassen - per echo - da klappt es dann irgendwie...aber anscheinend doch nicht richtig...

Könnt ihr mir helfen?

mfg
 
Das 1. Problem liegt in folgender Zeile:

$freund2 = $_POST["freund2"];

Damit wird die Variable $freund2 leer sein, da es in dem Formular kein Objekt mit namen freund2 gibt. Die Auswahl aus einem Dropdown sprichst du über den Namen des Select Feldes an und nicht über irgendwas anderes. Dein Select-Feld heisst dfriend, also müsst es

$freund2 = $_POST['dfriend']

heissen.

Das 2. Problem ist, dass dein Select-Feld überhaupt nicht innerhalb des <form> Tags steht und damit sowieso nicht übertragen wird.
 
Habs nun so gemacht:

PHP:
..
// FRIEND LÖSCHEN

if(isset($_POST["del"]))
{ 
$freund1 = $_SESSION['user'];
$freund2 = $_POST['dfriend'];
$del = mysql_query("DELETE FROM befriend WHERE freund1 = '$freund1' AND freund2 = '$freund2'");
$de2 = mysql_query("DELETE FROM befriend WHERE freund1 = '$freund2' AND freund2 = '$freund1'");

header("Location: friends.php");
exit;
}
...
// DELETE TEIL

echo "<tr><td> DELETE </td></tr>";
echo "<tr><td>";

while ($dfriends = mysql_fetch_array($listf))
{
echo "<td><form method='post' action='friends.php'>";

echo "<select size='1' scrolling='yes' name='dfriend'>";
echo "<option value='".$dfriends["freund2"]."'>".$dfriends["freund2"]."</option>";
echo "</select></td>";

echo "<input type='submit' name='del' value='Löschen'>   </form></td></tr>";
echo "</table>";
}
..

Aber es geht trotzdem nicht, und wie bei dem 1. Code schon gesagt, funktioniert es auch nicht mit $_POST['dfriend']. Entweder is irgendwie noch was falsch oder ich habe gerade eine Programmiersperre die ich nicht umwinden kann ^^

mfg
 
So gibst du für jeden "Freund im Array" eine neue td und eine neue Form aus.
Das ist wohl wenig sinnvoll. In die while Schleife gehören nur die ganzen echos
für die <option> Einträge. Der Rest muss um die While Schleife herum gesetzt
werden.

Sorry das ich so frage, aber weisst du überhaupt, was du da machst ? :rolleyes:
 
Joa weiß ich, sonst hätte ich das ganze andere ja nicht hinbekommen was funktioniert ^^
Na ich hab das ja jetzt nur in die Schleife reingepackt weil du irgendwie meintest, dass ich das so machen soll...hm..
Habs wohl falsch verstanden, änder ich mal :)
 
Zurück