waarom werkt unset nooit bij mij :(
ben al een tijdje aan het zoeken naar een manier om de unset() functie nu eens deftig aan het werk te krijgen... maar dit is nog nooit echt gelukt! Heb hier steeds rondom kunnen werken maar nu zit ik met een probleem waar ik het toch eens zal moeten kunnen want anders zit ik vast! Dus als er me iemand kan helpen maak je me heel gelukkig ;)
dit is wat ik ongeveer wil doen :
ben een programma aan het schrijven dat alle subfolders weergeeft in een bepaalde folder.
Het eerste deel van het programma bestaat eruit om gewoon de verschillende folders uit te vissen en deze elk in hun eigen textveldje weer te geven. Tot zover werkt alles ok. Maar naast die folders heb ik dan ook een checkbox gezet zodanig dat als je enkele folders aanklikt om gedeleted te worden en dan op de submit 'delete' drukt, dat deze automatisch gedelted worden.
dus ik heb een form gemaakt die post naar zichzelf,
en dan boven de form staat mijn php code waar op een bepaald moment staat
na de deletecode uitgevoerd te hebben staat er dan
de eerste keer lukt dit, maar er staan ook nog een paar andere functies in dat programma zoals 'maak een nieuwe directory aan' . Als je nu bv eerst een directory gedeleted hebt en dan een nieuwe probeert aan te maken, dan lukt het aanmaken wel maar ondertussen denkt hij ook nog altijd dat deze voorwaarde waar is.
blijkbaar heeft de unset niet gewerkt en dan wordt er spijtig genoeg de volgende directory in mijn directoryarray verwijderd...
Heeft er iemand een idee hoe dit wél moet?
THANKS!!
Gewijzigd op 15/02/2006 00:26:00 door Mic
ik heb in mijn form enkel
<input type="submit", name="delete", value="delete" />
staan, dus uiteindelijk is dit altijd dezelfde waarde.
Maar dus de functie unset(...) werkt dus gewoon niet in dit geval?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
$root='/rootfolder ergens op de server';
$large="/large";
$small="/small";
$dh = opendir("$root");
$folderString = "<table>";
while (($content = readdir($dh)) !== false)
{
if ((is_dir($root.$content)) && ($content!=="." && $content!=="..")) $folderArray[]=$content;
}
@closedir($dh);
if(isset($_POST['newfolder']))
{
unset($_POST['delete']);
if ($_POST['newfolder']!="" || $_POST['newfolder']!="null" )
{
$new = $root.$_POST['newfolder'];
if (mkdir("$new")) echo "folder $new succesfully created <br \> ";
else echo "folder $new NOT created <br \>";
$smallFolder =$new.$small;
if (mkdir("$smallFolder")) echo "folder $smallFolder succesfully created <br \>";
else echo "folder $smallFolder NOT created <br \>";
$largeFolder =$new.$large;
if (mkdir("$largeFolder")) echo "folder $largeFolder succesfully created <br \>";
else echo "folder $largeFolder NOT created <br \>";
unset ($_POST['newfolder']);
}
}
if(isset($_POST['delete']))
{
$selected = $_POST['del'];
foreach($selected as $toDel )
{
echo "you selected $folderArray[$toDel] for deletion";
$remove = $root.$folderArray[$toDel].$small;
rmdir("$remove");
$remove = $root.$folderArray[$toDel].$large;
rmdir("$remove");
$remove = $root.$folderArray[$toDel];
rmdir("$remove");
}
echo "Folder $folderArray[$toDel] deleted";
unset($_POST['delete']);
}
for ($i=0; $i<sizeof($folderArray); $i++)
{
$currentFolder = $folderArray[$i];
$folderString.="<tr><td><input type=\"text\", name=\"$i\", size=\"50\", maxlength=\"100\", value=\"$currentFolder\" /></td> ";
$folderString.="<td><input type=\"checkbox\", name=\"del[]\", value=\"$i\" /> </td></tr>";
}
?>
$root='/rootfolder ergens op de server';
$large="/large";
$small="/small";
$dh = opendir("$root");
$folderString = "<table>";
while (($content = readdir($dh)) !== false)
{
if ((is_dir($root.$content)) && ($content!=="." && $content!=="..")) $folderArray[]=$content;
}
@closedir($dh);
if(isset($_POST['newfolder']))
{
unset($_POST['delete']);
if ($_POST['newfolder']!="" || $_POST['newfolder']!="null" )
{
$new = $root.$_POST['newfolder'];
if (mkdir("$new")) echo "folder $new succesfully created <br \> ";
else echo "folder $new NOT created <br \>";
$smallFolder =$new.$small;
if (mkdir("$smallFolder")) echo "folder $smallFolder succesfully created <br \>";
else echo "folder $smallFolder NOT created <br \>";
$largeFolder =$new.$large;
if (mkdir("$largeFolder")) echo "folder $largeFolder succesfully created <br \>";
else echo "folder $largeFolder NOT created <br \>";
unset ($_POST['newfolder']);
}
}
if(isset($_POST['delete']))
{
$selected = $_POST['del'];
foreach($selected as $toDel )
{
echo "you selected $folderArray[$toDel] for deletion";
$remove = $root.$folderArray[$toDel].$small;
rmdir("$remove");
$remove = $root.$folderArray[$toDel].$large;
rmdir("$remove");
$remove = $root.$folderArray[$toDel];
rmdir("$remove");
}
echo "Folder $folderArray[$toDel] deleted";
unset($_POST['delete']);
}
for ($i=0; $i<sizeof($folderArray); $i++)
{
$currentFolder = $folderArray[$i];
$folderString.="<tr><td><input type=\"text\", name=\"$i\", size=\"50\", maxlength=\"100\", value=\"$currentFolder\" /></td> ";
$folderString.="<td><input type=\"checkbox\", name=\"del[]\", value=\"$i\" /> </td></tr>";
}
?>
<form action="folders.php" method="POST">
<h3>Add new folder :</h3><br>
<input type="text", name="newfolder", size="50", maxlength="100">
<input type="submit", name="create", value="create folder" /><br>
<input type="submit", name="delete", value="delete" />
Gewijzigd op 15/02/2006 00:45:00 door mic
mic:
ok maar ik denk niet dat dit mogelijk is met mijn programma.
ik heb in mijn form enkel
<input type="submit", name="delete", value="delete" />
staan, dus uiteindelijk is dit altijd dezelfde waarde.
Maar dus de functie unset(...) werkt dus gewoon niet in dit geval?
ik heb in mijn form enkel
<input type="submit", name="delete", value="delete" />
staan, dus uiteindelijk is dit altijd dezelfde waarde.
Maar dus de functie unset(...) werkt dus gewoon niet in dit geval?
Dat is geen goede methode. Bij een 'delete' wil je precies weten wat je gaat deleten. Als je submit button als name 'delete' heeft, dan krijg je na verzenden niet genoeg info. Het enige dat je weet, is dat het formulier verstuurd is.
Het is beter om bijvoorbeeld checkboxen te hebben naast elk record. Als je die een value geeft die overeenkomt met het id van die record in je database, dan weet je al veel meer als het formulier verstuurd wordt.
Ik voorzie dus naast elke folder een checkbox met als value de plaats van de folder in de folderArray.
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<? for ($i=0; $i<sizeof($folderArray); $i++)
{
$currentFolder = $folderArray[$i];
$folderString.="<tr><td><input type=\"text\", name=\"$i\", size=\"50\", maxlength=\"100\", value=\"$currentFolder\" /></td> ";
$folderString.="<td><input type=\"checkbox\", name=\"del[]\", value=\"$i\" /> </td></tr>";
}
?>
{
$currentFolder = $folderArray[$i];
$folderString.="<tr><td><input type=\"text\", name=\"$i\", size=\"50\", maxlength=\"100\", value=\"$currentFolder\" /></td> ";
$folderString.="<td><input type=\"checkbox\", name=\"del[]\", value=\"$i\" /> </td></tr>";
}
?>
en als je dan op submit drukt, dan kijk ik welke checkboxen aangeklikt zijn naargelang de value's.
Code (php)
Dat is toch de manier die jij bedoelt?
Gewijzigd op 15/02/2006 01:09:00 door mic
Weet er iemand hoe je een refresh genereerd?