tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1696
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    SwingerLive SwingerLive ist offline Mitglied Silber
    Registriert seit
    Mar 2003
    Beiträge
    81
    Hallo,

    ich haben eine kleine Schleife, die mir ein Pulldown Menü generiert, und zwar
    vom heutigen Jahr (2004) 60 Jahre zurück. Hier der Code:

    <select name="vonjahr">
    <?
    $zeit =time();
    ?><option value=""></option><? $jahr = date("Y", $zeit);
    for($x = 0; $x < 60; $x++)
    {
    echo "<OPTION value=\"$jahr\"";
    if ($vonjahrausbildung1 == "$jahr") echo "selected";
    echo ">$jahr</option>";
    $jahr=$jahr-1;
    }
    ?>
    </select>



    Diese Schleife benötige ich insgesamt 26 mal, ich gebe dem <select name="vonjahr">
    natürlich jedesmal eine andere Variable an. Und nun kommt der Punkt wo ich absolut
    nicht mehr weiterweis. Nachdem das 8.te Pulldownmenü erzeugt wurde, geht die
    For Next Schleife in eine Endlosschleife über. Ist aber genau der gleiche Code wie bei allen anderen Schleifen.

    Hat das was mit der PHP Version zu zun die auf dem Webserver installiert ist? denn
    wenn ich den absolut gleichen Script auf einen anderen Webserver laufen lasse, dann
    geht das ohne Probleme.

    Hier die beiden PHP Versionen:

    1. PHP Version 4.3.1 (Hier geht die Schleife in die Endlosschleife über)
    2. PHP Version 4.3.8 (Hier läuft der Script einwandfrei)

    Kann mir da jemand weiterhelfen


    Gruß

    Andreas
     

  2. #2
    CodAv Tutorials.de Gastzugang
    Wenn Du diese Schleife 26 mal benötigst, wäre es sicherlich sinnvoll, diese in eine Funktion zu packen:

    PHP-Code:
        
        
    function erzeuge_auswahlbox($name$selected)
        {
            echo 
    '<select name="'$name'"><option value=""></option>';
        
            
    $zeit time();
            
    $jahr date("Y"$zeit);
        
            for(
    $I 0$I 60$I++) {
                echo 
    '<option value="'$jahr'"';
                if (
    $selected == $jahr) echo ' selected="selected"';
                echo 
    '>'$jahr'</option>';
                
    $jahr--;
            }
            
            echo 
    '</select>';
        } 
    Aufrufen kannst Du diese Funktion z.B. einfach mit erzeuge_auswahlbox("vonjahr", $vonjahrausbildung1);

    Schau mal, ob das Dein Problem löst.
     

  3. #3
    SwingerLive SwingerLive ist offline Mitglied Silber
    Registriert seit
    Mar 2003
    Beiträge
    81
    Zitat Zitat von CodAv
    Wenn Du diese Schleife 26 mal benötigst, wäre es sicherlich sinnvoll, diese in eine Funktion zu packen:


    Aufrufen kannst Du diese Funktion z.B. einfach mit erzeuge_auswahlbox("vonjahr", $vonjahrausbildung1);

    Schau mal, ob das Dein Problem löst.

    Danke dir für deine schnelle Antwort. Habe es eben umgebaut, und siehe
    da, es funktiniert. Mich würden nur noch interessieren warum bei einem Provider
    daraus eine Endlosschleife wird, und beim anderen nicht?

    Gruß

    Andreas
     

  4. #4
    CodAv Tutorials.de Gastzugang
    Die Frage nach dem Warum lässt sich anhand dieses einen Codeschnipsels schwer beantworten. Ich vermute, dass es an einem PHP-Bug oder einem zwischen diesen Versionen geänderten Feature, oder auch an einer unterschiedlichen PHP-Konfiguration liegen wird, ein kleiner Fehler im Code ist natürlich auch möglich. Das ist der Grund, warum man oft benutzte Passagen besser in Funktionen oder Klassen verfrachtet, je nach Anwendungsgebiet und Art des Codes.
     

  5. #5
    SwingerLive SwingerLive ist offline Mitglied Silber
    Registriert seit
    Mar 2003
    Beiträge
    81
    Ok, danke dir für deine Hilfe. Ich bin gerade dabei meine Monatsangabe ebenfalls in eine
    Funktion zu packen:

    HTML-Code:
    <select name="schulstudiumvonmonat">
                    <option value=""></option>
    <?if ($schulstudiumvonmonat) echo "<option value=\"$schulstudiumvonmonat\" selected>$schulstudiumvonmonat</option>";?>
    				<option value="Jan">Jan</option>
                    <option value="Feb">Feb</option>
                    <option value="Mar">Mar</option>
                    <option value="Apr">Apr</option>
                    <option value="Mai">Mai</option>
                    <option value="Jun">Jun</option>
                    <option value="Jul">Jul</option>
                    <option value="Aug">Aug</option>
                    <option value="Sep">Sep</option>
                    <option value="Okt">Okt</option>
                    <option value="Nov">Nov</option>
                    <option value="Dez">Dez</option>
                  </select> 

    PHP-Code:
    function erzeuge_monatbox($name, $selected)
        {
            echo '<select name="', $name, '"><option value=""></option>';
           if ($selected) echo "<option value=\"$selected\" selected>$selected</option>";?>
                    <option value="Jan">Jan</option>
                    <option value="Feb">Feb</option>
                    <option value="Mar">Mar</option>
                    <option value="Apr">Apr</option>
                    <option value="Mai">Mai</option>
                    <option value="Jun">Jun</option>
                    <option value="Jul">Jul</option>
                    <option value="Aug">Aug</option>
                    <option value="Sep">Sep</option>
                    <option value="Okt">Okt</option>
                    <option value="Nov">Nov</option>
                    <option value="Dez">Dez</option>
                  </select>
              <?}?>

    Gruß

    Andreas
     

Ähnliche Themen

  1. for Schleife in select. Geht das?
    Von Spelmann im Forum PHP
    Antworten: 3
    Letzter Beitrag: 14.11.09, 17:16
  2. Query läuft ins Endlose
    Von spikaner im Forum PHP
    Antworten: 15
    Letzter Beitrag: 02.02.09, 10:51
  3. Hashtable.add geht nicht in Schleife ?
    Von Asterix-Ac im Forum .NET Datenverwaltung
    Antworten: 3
    Letzter Beitrag: 21.09.07, 16:24
  4. endlose bildlaufleiste von rechts nach links bewegend
    Von sanktusm im Forum Flash Plattform
    Antworten: 1
    Letzter Beitrag: 06.03.07, 13:37
  5. Antworten: 3
    Letzter Beitrag: 15.09.03, 22:37