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
gib mal auf der folgeseite
print_r($_POST);
aus.
Oder gib einfach der Listbox einen Namen à la "selWurst[]" ... also mit eckigen Klammern ... dann bekommst Du ein Array ...
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
$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 :(
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?
jungs wie wärs mit
foreach($bla as $blabla)
funktioniert bei mir wunderbar.... is halt erst aber PHP vers. 4
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äge wirklich löschen?</u><br><br>';
for($i=0;$i<=($_REQUEST['delete_counter']-1);$i++)
{
if($_REQUEST['delete'][$i] == "1")
{
$info = $info.' <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 :(((
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
for($i=0;$i<count($_POST['delete']);$i++)
echo 'Okay' . $i;
Mach den Code mal!
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....
|