Arrayvarialbe wird nicht korrekt übergeben

Begonnen von sidewind, 24 März 2003, 19:50:02

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

sidewind

hi leutz,

komm schon wieder nicht weiter trotz buch (shame on me  :) )

hab eine mehrfachauswahlliste

  <select name=\"cat[]\" multiple size=\"$size\">";
....

in einer funktion. ich möchte die variable jetzt zu einer anderen funktion übergeben

header davon

  function blabal ($cat,....)
{
}

 der array lässt sich aber mit der foreach schleife nicht auswerten.
ein   echo count($cat);  ergibt nur 1 , obwohl mehrere einträge in dieser liste selektiert sind.

was mach ich falsch?
ich hoff ihr habt einen tipp für mich

Andi

Hi sidewind :)

wie wird die Funktion blabal() aufgerufen?
Wird das array dieser Funktion korrekt übergeben?

z.B. so:
$xx = blabal($cat);
bzw. so:
$xx = blabal($_POST["cat"]);

schön´s Grüssle, Andi

sidewind

die mehrfachauswhal liste ist in einem formular drinnen

 
<form action="blaba.php" method="post">
<select name="cat[]" multiple size=5>
<option value=1 name="Hallo" >
....
</select>
<input type="hidden" name="op" value="blabla">
<input type="submit" ..>
</form>
usw.

 

die funktion wird dann wie "nuke-üblich" in der blabla modul datei mit

switch ($op)
{

   case "blabla":
   blabal($cat);
   break;
}

aufgerufen

so wie jedes phpnuke  modul eben aufgebaut ist.

register_globals sind on deshalb ist das $POST Array noch nicht notwendig.
das brauch ich ja auch nicht oder, hoffe das sp2 wird das schon vorher erledigen , sonst müssten die ganzen module ja umgeschrieben werden..

ich hoffe es bringt dich meinem problem etwas näher..
danke dir schonmal!

Andi

Hmm, sieht eigentlich alles ok aus....

Schreib mal vor den Funktionsaufruf folgendes:

foreach($cat as $index=> $value) {
 ${$index} = $value;
 print "$index= ${$index}<br>";
 }
Mal sehen was dann angezeigt wird.

Yep, im VKP-Mxxx II (kein SP2 mehr) wird das auch ohne register_globals funktionieren.
schön´s Grüssle, Andi

sidewind

dank dir echt !!
jetzt funzt es

es hat daran gelegen da man lt. buch
folgenden code vor der foreach() schleife  verwenden sollte:

   if ($cat="") {$cat=array();

und das buch (php und mysql von kevin yank) hat 35 € gekostet.
ein witz

dank dir nochmal andi!
übrigens vkp maxi II hört sich gut an. ist wohl ziemlich viel verändert worden (gespannt bin)

Andi

 :redhead:  Naja, hatte ja damit dann nix zu tun....

Kleiner tip zum coden:
in der mainfile, ganz am Anfang, mit   error_reporting(15); die php-Fehlermeldungen explizit einschalten. Hilft meistens auf die Sprünge, wenns irgendwo klemmt.

Ja, wir haben uns entschlossen eine Version 2 des VKP aus dem SP2 zu machen. Es wurde soviel im Grund-System verändert, dass der Versionssprung gerechtfertigt ist.
ps. Dein Newsletterfix ist auch drin, Danke!
schön´s Grüssle, Andi