Habe mir folgende zusammengesucht, was im Firefox auch funktioniert, nicht aber im IE.
Und ich hab keinen Schimmer, warum nicht.
Also im IE wird der ausgewählte Wunsch nicht aus der txt gelöscht.
das Formular zum Auswählen der Wünsche liest Zeilen aus einer txt-Datei ein:
<form name="wunschliste" id="form1" method="post" action="wuensche3.php">
<?php
$datei=fopen("wuenscheliste.txt","a+");
while(!feof($datei))
{
$zeile = fgets($datei,1000);
if ($zeile)
{
echo $zeile.'<input type="checkbox" name="wunsch[]" value="'.$zeile.'"><br>';
}
}
fclose($datei);
?>
<input name="Abschicken" type="submit" value="Wunsch erfüllen" />
</form>
Aufruf der Löschfunktion für jede Auswahl:
<?php
if($wunsch)
{
$anzahl = count($wunsch);
$a = 0;
while($a < $anzahl)
{
$einzelwunsch ="$wunsch[$a]";
$fn = "wuenscheliste.txt";
// Funktionsaufruf:
deleteLineFromFile($fn, $text = $einzelwunsch, -1);// wenn ich hier z.B. $text = "Tretroller" schreibe, dann gehts
$a++;
}
}
?>
...die Löschfunktion selber (http://phptt.de/showschnipsel.php?kat=3&id=16)
<?php
function deleteLineFromFile($filename, $text = "", $line = -1)
{
$result = true;
if (! strlen ($text) && $line == -1)
$result = false;
else
{
if (file_exists($filename))
{
$array = file($filename);
// Zeilennummer?
if ($line != -1)
{
if ($line < count($array))
{
unset($array[$line]);
$array = array_values($array);
}
else
$result = false;
}
else
{
if (strlen ($text))
{
$count = -1;
foreach ($array as $value)
{
$value = trim ($value);
if ($text == $value)
{
$count++;
unset($array[$count]);
$array = array_values($array);
break;
}
else
$count++;
}
}
else
$result = false;
}
}
else
$result = false;
}
if ($result = true)
{
$fp = fopen ($filename, "w");
if ($fp)
{
foreach ($array as $value)
fputs($fp, $value);
fclose ($fp);
}
else
$result = false;
}
return $result;
}
?>
Woran könnte es wohl beim IE scheitern?
Zuletzt bearbeitet von blauwahr (29-08-2006 12:19:52)
Gruß + Dank
Volker