Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Multiselect abarbeiten [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Multiselect abarbeiten


 
Timelesk
26-12-2003, 12:07 
 
Hi,

habe die Suche schon benutzt, aber aus dem einzigen brauchbaren Thread bin ich echt net schlau geworden...

-----------------------------------------------

Ich hab ne Listbox auf meiner seite und wenn ich darin nun 3 Einträge markiere, will ich, dass diese 3 abgearbeitet werden (so wie im wbb2 z.B. die suche, dass man dort die foren auswählen kann)

Könnt ihr mir sagen, wie das geht?

BIG THX

 
TobiaZ
26-12-2003, 12:13 
 
gib mal auf der folgeseite

print_r($_POST);

aus.

 
goth
26-12-2003, 13:57 
 
Oder gib einfach der Listbox einen Namen à la "selWurst[]" ... also mit eckigen Klammern ... dann bekommst Du ein Array ...

 
wahsaga
26-12-2003, 19:06 
 
Original geschrieben von Timelesk
habe die Suche schon benutzt
daneben gibt es ja durchaus auch noch andere brauchbare ressourcen im netz ...

de.comp.lang.php.* FAQ: Wie kann man ein <select multiple> verarbeiten? (http://www.dclp-faq.de/q/q-formular-select-multiple.html)

 
Timelesk
05-01-2004, 22:21 
 
Hi,

das mim multiselect hab ich nun, aber da gibts ein problem:

Ich hab die abfrage so gemacht:

$i = 0;
while($_REQUEST['boxen'][$i] != "")
{
echo $_REQUEST['boxen'][$i];
}

Aber wenn jetzt anstatt der ersten box, die dritte oder so markiert ist, wird trotzdem die erste box genommen :(

und per for-schleife wäre es ein wenig blöde, da des ja das ganze verlangsamt und ich nicht unbedingt noch eine abfrage reinbaun will (wieviele boxen es überhaupt gibt).

nuja... wisst ihr da was?

 
mrhappiness
05-01-2004, 22:26 
 
echo '<pre>';
print_r($_REQUEST['boxen']);
echo '</pre>';mal 2-3 einträge markieren, aber nichht alle und gucken was rauskommt

 
TobiaZ
05-01-2004, 22:27 
 
$i = 0;
while($_REQUEST['boxen'][$i] != "")
{
echo $_REQUEST['boxen'][$i];
}Hier wäre imho eine forschleife besser geeignet. Bei dem code ist es wohl kein wunder, dass immer der erste genommen wird. übersetz das mal in Pseudocode, dann weißt du warum!

 
Timelesk
05-01-2004, 22:47 
 
hmmm...

also sollte ich beim auslesen der ganzen boxen einfach nen count mitzählen lassen und ne for-schleife mit dem endwert des counters laufen lassen:

if($_REQUEST['boxen'][$i] != "") echo $_REQUEST['boxen'][$i];

-------------------

Pseudo: fang bei 0 an und höre sofort auf, wenn der wert 0 ist
und deswegen wunderts mich auch, dass er überhaupt etwas ausgibt :(

 
TobiaZ
05-01-2004, 22:48 
 
also sollte ich beim auslesen der ganzen boxen einfach nen count mitzählen lassen und ne for-schleife mit dem endwert des counters laufen lassen: hast du schonmal ne for-schleife benutz?

 
Timelesk
05-01-2004, 23:00 
 
jeppa

ich meinte das so:

for($i=0;$i<=$counter;$i++)
{
..mein code
}

oder wie meintet ihr das?

 
TobiaZ
05-01-2004, 23:06 
 
guckst du count() an :D

 
JOat
06-01-2004, 03:41 
 
jungs wie wärs mit

foreach($bla as $blabla)

funktioniert bei mir wunderbar.... is halt erst aber PHP vers. 4

 
TobiaZ
06-01-2004, 12:24 
 
Net so doll. :( PHP4 ist ja standard. Trotzdem ist foreach imho langsamer als for. Sollte also nur bei assoziativen Arrays benutzt werden.

 
Timelesk
06-01-2004, 13:06 
 
Hmmmmmm,

irgendwie funzt das bei mir net :((

$info = '<u>Folgende Eintr&auml;ge wirklich l&ouml;schen?</u><br><br>';
for($i=0;$i<=($_REQUEST['delete_counter']-1);$i++)
{
if($_REQUEST['delete'][$i] == "1")
{
$info = $info.'&nbsp;&nbsp;<i>'.$_REQUEST['titel'][$i].'</i><br>';
$formular_hidden = $formular_hidden.'<input type="hidden" name="id[]" value="'.$_REQUEST['id'][$i].'">';
}
}
$formular_hidden = $formular_hidden.'<input type="hidden" name="send" value="Senden"><input type="hidden" name="bereich" value="lexikon"><input type="hidden" name="show" value="loeschen">';
eval ("\$senden = \"".gettemplate("delete_senden")."\";");

Er nimmt immernoch das erste :(((

 
TobiaZ
06-01-2004, 13:07 
 
wie heißt denn dein select???
warum benutzt du das count nicht?
was steht in $_REQUEST['delete_counter'] drin?

 
Timelesk
06-01-2004, 13:22 
 
das ist in nem input gespeichert.

mein array heißt DELETE und steht so in jedem input-checkbox drinne:

<input type="checkbox" name="delete[]" value="1">

----------
Über type="hidden" wird die ID und der TITEL des eintrages.

Wird nun delete[0] angehakt, so soll der über hidden gesendete TITEL von diesem eintrag angezeigt werden.

z.B. id[0] und titel[0] dem gleichen eintrag entnommen.

aber er gibt immer nur das array [0] zurück, auch wenn ich [1] wähle. wenn ich aber [0] UND [1] (halt ALLE Einträge) auswähle, so gibt er alles richtig aus. Genauso, wenn ich nur den 1. Eintrag wähle

 
TobiaZ
06-01-2004, 13:33 
 
for($i=0;$i<count($_POST['delete']);$i++)
echo 'Okay' . $i;

Mach den Code mal!

 
JOat
06-01-2004, 16:04 
 
Original geschrieben von TobiaZ
Net so doll. :( PHP4 ist ja standard. Trotzdem ist foreach imho langsamer als for. Sollte also nur bei assoziativen Arrays benutzt werden.

axo.... schade... ich nehms aber trotzdem....

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:42 Uhr.