• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

return Problem

Status
Für weitere Antworten geschlossen.

meGa

Neues Mitglied
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;                                                                       
                                     }

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 ?
 
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:
<form name="main" method="POST">

<select name="xonx">

<?php

   for($i=1;$i<=6;$i++) {
       
           echo '<option ';

           if($_POST['xonx'] == $i.'on'.$i) echo 'selected ';
           
           echo 'value="'.$i.'on'.$i.'">'.$i.' on '.$i.'</option>';
       
   }

?>

</select>

<input type="submit" name="sender" value="Abschicken">
</form>
 
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. :-P

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.'</option>';
                
                return $option;                                 
                                                       }         
                                                      }
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.='<option ';
          
        if($xonx == $i.'on'.$i) $option.="selected ";
       
        $option.='value="'.$i.'on'.$i.'">'.$i.'on'.$i.'</option>';
                
    }
    
    return $option;
    
}
                                                      
?>
 
Ich konnte überall eine Funktion verwenden außer bei xonx.

Code:
 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.='<option ';
          
            if($xonx == $i.'on'.$i) $option.="selected ";
       
            $option.='value="'.$i.'on'.$i.'">'.$i.'on'.$i.'</option>';
                
        }
        
        break;
        
        // Wochentag
        case 2:
        
        for($i=$start;$i<=$limit;$i++) {
        
            $option.='<option ';
               
            if($day == $i) $option .="selected ";
       
               $option .='value="'.$i.'">'.$i.'</option>';
               
        }
            
        break;
        
        // Monate
        case 3:
        
        $monate = array("","Januar","Februar","M&auml;rz","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember");
        
        for($i=1;$i<=12;$i++) {
        
            $option.='<option ';
               
            if($monat == $i) $option .="selected ";
       
               $option .='value="'.$i.'">'.$monate[$i].'</option>';
               
        }
            
        break;
    
        return $option;
    
    }
    
}
                                                      
?>
 
WOW danke dir :-) n

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

check(,$_POSt['days'],1,32,2) ???
 
Zuletzt bearbeitet:
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;
    
    }
    
}

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)

Dein Aufruf
PHP:
check($_POST['date_day'],1,32,2);

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

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);
 
super Antwort ich war mir nämlich nicht sicher wie ich die andere stellee Fülle wenn ich die nicht benutze Supi danke dir =)
 
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
Code:
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);
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben