return Problem

HI ich bins mal wieder :-):lol:,

in meinem Thread Variablen herausholen hatte ich bereit gefragt wie ich Variablen herrausholen kann.

Da sagte böhseronkel: du kannst es mit GLOBLAS machen, das geht bei mir auch.

Ein anderer sage wiederum es geht auch mir return. Mit return geht es bei mir nicht.

meine function
[PHP]
function check_xonx($xonx) {
if($xonx == „1on1“) $xonx_[0]=„"1on1" selected“; else $xonx_[0]=„"1on1"“;
if($xonx == „2on2“) $xonx_[1]=„"2on2" selected“; else $xonx_[1]=„"2on2"“;
if($xonx == „3on3“) $xonx_[2]=„"3on3" selected“; else $xonx_[2]=„"3on3"“;
if($xonx == „4on4“) $xonx_[3]=„"4on4" selected“; else $xonx_[3]=„"4on4"“;
if($xonx == „5on5“) $xonx_[4]=„"5on5" selected“; else $xonx_[4]=„"5on5"“;
if($xonx == „6on6“) $xonx_[5]=„"6on6" selected“; else $xonx_[5]=„"6on6"“;

  $players_option="<option value=$xonx_[0]>1on1</option>
                                  <option value=$xonx_[1]>2on2</option>
                                     <option value=$xonx_[2]>3on3</option>
                    <option value=$xonx_[3]>4on4</option>
                    <option value=$xonx_[4]>5on5</option>
                    <option value=$xonx_[5]>6on6</option>";    
                    
                    return $players_option;                                                                       
                                 }       

[/PHP]

wenn ich aus $players_option $GLOBALS[‚option‘] mache geht es. Beim Aufrufen der Funktion mache ich einfach $GLOBALS[‚option‘]=$players_option; aber wenn ich das mit return mache geht es nicht. wieso ?

Was heisst: „aber wenn ich das mit return mache geht es nicht“?

hi,

deiner funktion nach zu urteilen willst du nur quasi das wieder ausgewählt haben was beim post übergeben wurde richtig ? mehr soll diese funktion nicht bringen oder ?

wenn ja würde ich das so machen ist doch viel einfacher ^^

[PHP]

<?php for($i=1;$i<=6;$i++) { echo ''.$i.' on '.$i.''; } ?> [/PHP]

HaHa danke.

war das jetzt ironie oder hat es dir wirklich geholfen ? war es das was du brauchtest bzw. mit deiner funktion realisieren wolltest ?

Das hat mir echt geholfen danke :-). Weil ich das dann auch anweden kann bei den andern sachen die ich Brauche :lol: z.b. bei Tagen habe ich 32 zeilen mit der if abfrage. :stuck_out_tongue:

Aber ich habe deine sache mal etwas umgebaut da kommt das Problem mit return

[php]
function test_check($xonx) {
for($i=1;$i<=6;$i++) {

   $option='<option ';
   if($xonx == $i.'on'.$i) $option .="selected ";

$option .=‚value="‘.$i.‚on‘.$i.‚">‘.$i.‚on‘.$i.‚‘;

            return $option;                                 
                                                   }         
                                                  }

[/php]
Wo ist da der Fehler ?

Edit habe es doch hinbekommen: aber erstellt nur 1on1 da, wieso ?

Weil der return innerhalb der forschleife ist !

wenn musst du es so machen wenn du es unbedingt in eine funktion bauen willst !

[PHP]

<?php function test_check($xonx) { $option = ""; for($i=1;$i<=6;$i++) { $option.=''.$i.'on'.$i.''; } return $option; } ?>

[/PHP]

Super danke dir =) ich baue es in eine Funktion, weil ich es mehrmals brauche.

Kein Problem …

Ich konnte überall eine Funktion verwenden außer bei xonx.

 function check($day, $start, $limit) {
        $option="";
        for($i=$start;$i<=$limit;$i++) {
       
       $option.='<option ';
       if($day == $i) $option .="selected ";
       
       $option .='value="'.$i.'">'.$i.'</option>';                                                            
                                                       }
                                                       return $option;            
                                                      }            

Die verwende ich bei Monaten, Minuten, Stunden und Tag und Jahr Aber bei xonx muss ich das machen wie du sie mir gegeben hast. Oder wegen immer dem on …

du kannst die ja auch kapseln in dem du es so machst !

[php]

<?php function check($xonx = "", $day = "", $monat = "", $start = "", $limit = "", $mode = 1) { $option = ""; switch($mode) { // XonX case 1: for($i=$start;$i<=$limit;$i++) { $option.=''.$i.'on'.$i.''; } break; // Wochentag case 2: for($i=$start;$i<=$limit;$i++) { $option.=''.$i.''; } break; // Monate case 3: $monate = array("","Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"); for($i=1;$i<=12;$i++) { $option.=''.$monate[$i].''; } break; return $option; } } ?>

[/php]

WOW danke dir :slight_smile: n

Edit was mache ich dann wenn ich Tage haben will muss ich das dann so mache:

check(,$_POSt[‚days‘],1,32,2) ???

Kein Problem :wink:

irgendwie geht es nicht.

Die Funktion:

[PHP]
function check($value1=„“,$value2=„“,$start=„“,$limit=„“,$mode=1) {

$option = "";

switch($mode) {
          
    case 1:
        
    for($i=$start;$i<=$limit;$i++) {
    
           $option.='<option ';
      
        if($value1 == $i.'on'.$i) $option.="selected ";
   
        $option.='value="'.$i.'on'.$i.'">'.$i.'on'.$i.'</option>';
            
    }
    
    break;
           
    case 2:
    
    for($i=$start;$i<=$limit;$i++) {
    
        $option.='<option ';
           
        if($value2 == $i) $option .="selected ";
   
           $option .='value="'.$i.'">'.$i.'</option>';
           
    }
        
    break;
                    
    return $option;

}

}

[/PHP]

und so will ich es aufrufen:

$days=check($_POST[‚date_day‘],1,32,2);

geht nicht erscheint nichts.

Hallo,

da hättest du schon wieder selber drauf kommen können !

Deine Funktion
[PHP]
function check($value1=„“,$value2=„“,$start=„“,$limit=„“,$mode=1)
[/PHP]

Dein Aufruf
[PHP]
check($_POST[‚date_day‘],1,32,2);
[/PHP]

Fällt dir was auf ?

5 gegen 4 d.h.

[PHP]
$_POST[‚date_day‘] = $value1
1 = $value2
32 = $start
2 = $limit

$mode bleibt 1 da diese variable unbelegt ist
[/PHP]

Somit sollte folgender Quelltext gehen !

Es soll gesagt sein, wenn du eine funktion verwendest und im funktions aufruf nicht alle werte benutzt dann müssen sie vordefiniert sein in der funktion. Willst du aber beim Funktionsaufruf, wie in deinem falle, ein wert in der mitte frei lassen, musst du ihn aber deklarieren da die funktion nur werte von hinten nach vorne selbständig deklariert wenn sie vordefiniert sind.

[PHP]
check($_POST[‚date_day‘],„“,1,32,2);
[/PHP]

super Antwort ich war mir nämlich nicht sicher wie ich die andere stellee Fülle wenn ich die nicht benutze Supi danke dir =)

Kein Problem !

Es geht immer noch net sorry:

ich rufe so auf;

$xonx=check($_POST[‚xonx‘],„“,1,6);

$_POST[‚xonx‘] = $value1,
„“=$value2,
1 = $start,
6 = $limit,
$mode gesetzt = $mode = 1

function

function check($value1="",$value2="",$start="",$limit="",$mode=1) {
    
    $option = "";
    
    switch($mode) {
              
        case 1:
            
        for($i=$start;$i<=$limit;$i++) {
        
               $option.='<option ';
          
            if($value1 == $i.'on'.$i) $option.="selected ";
       
            $option.='value="'.$i.'on'.$i.'">'.$i.'on'.$i.'</option>';
                
        }
        
        break;
               
        case 2:
        
        for($i=$start;$i<=$limit;$i++) {
        
            $option.='<option ';
               
            if($value2 == $i) $option .="selected ";
       
               $option .='value="'.$i.'">'.$i.'</option>';
               
        }
            
        break;
                        
        return $option;
    
    }
    
}                        

mach mal den funktionsaufruf anders !

und die funktion auch ! wenn du einen mode hast, brauchst du keine 2 value !

versuchs mal so

[PHP]
function check($value,$start,$limit,$mode) {

$option = "";

switch($mode) {
          
    case 1:
        
    for($i=$start;$i<=$limit;$i++) {
    
           $option.='<option ';
      
        if($value == $i.'on'.$i) $option.="selected ";
   
        $option.='value="'.$i.'on'.$i.'">'.$i.'on'.$i.'</option>';
            
    }
    
    break;
           
    case 2:
    
    for($i=$start;$i<=$limit;$i++) {
    
        $option.='<option ';
           
        if($value == $i) $option .="selected ";
   
           $option .='value="'.$i.'">'.$i.'</option>';
           
    }
        
    break;
                    
    return $option;

}

}

check($_POST[‚xonx‘],1,6,1);
[/PHP]

Geht immer noch net. Irgendwie ist da ein andere Fehler.