Globale Variablen Teil II

Diskutiere das Thema Globale Variablen Teil II im Forum Web-Programmierung

  1. ThaHammer

    ThaHammer Thread Starter Mitglied

    Beiträge:
    3.294
    Zustimmungen:
    13
    Mitglied seit:
    01.06.2004
    So mittlerweile weiß ich ja wie ich meine Globalen variablen bekomme. Das funktioniert jetzt auch. Nur ein Problem besteht bei mir gerade noch:
    Und zwar der Return Wert des Arrays feldname ist immer 0, die Größe immer 1. Das liegt daran das ich Sie am Anfang mit $feldname=""; angelegt habe.


    PHP:
    function schleife($start,$menge)
        {
            global 
    $resultf,$feldname;
            for (
    $i=$start;$i<$menge;$i++)
              {
              
    $meta mysql_fetch_field($resultf$i);
              
    $lang $meta->max_length+2;
              
    $typen $meta->type// Typ des Feldes ermitteln
              
    if($lang>=30)  // Wenn die Felder zu breit sind auf 30 setzten
                  
    {
                      
    $lang 30;
                  } 
              
    $feldname[$i] = "Feld" $i
              echo 
    "<td><input type="\.$typen.\" name="\.$feldname[$i].\" size="\.$lang.\" /></td>"
              }    
          echo 
    "</tr>";
          return 
    $GLOBALS[feldname];
        }
    Wie übergebe ich das Array feldname richtig?
     
  2. broxx

    broxx Mitglied

    Beiträge:
    19
    Zustimmungen:
    0
    Mitglied seit:
    04.08.2004
    hi!

    return $feldname;

    aber das array $feldname ist sowieso global und damit ist die rückgabe nicht nötig.
     
  3. Katana

    Katana Mitglied

    Beiträge:
    989
    Zustimmungen:
    0
    Mitglied seit:
    30.08.2004
    du kannst feldname auch ohne zähler per html übergeben!
    einfach name="feldname[]" verwenden ...
     
  4. Spike

    Spike Mitglied

    Beiträge:
    16.255
    Zustimmungen:
    144
    Mitglied seit:
    16.09.2003
    Ihr könnt ja tolle Sachen! :eek:


    kopfkratz
     
  5. ThaHammer

    ThaHammer Thread Starter Mitglied

    Beiträge:
    3.294
    Zustimmungen:
    13
    Mitglied seit:
    01.06.2004
    Hmm? Dann frage ich das Ergebnis falsch ab! :rolleyes:
     
  6. wegus

    wegus Mitglied

    Beiträge:
    16.010
    Zustimmungen:
    2.571
    Mitglied seit:
    13.09.2004
    Für solche Problemfälle bietet sich

    PHP:
    print_r($feldname);
    an, hier kann man genau sehen, ob arrays das enthalten was sie sollen. Achtung, Betrachtung im Quelltext des HTML-Output ist aussagekräftiger, als es sich im Browser direkt anzusehen! Der RETURN eines GLOBALS ist nat. widersinnig. Auch die SPACES vor und nach "." sind unzulässig, aber ich nehme an, das ist nur hier im Beispiel so!?
     
  7. ThaHammer

    ThaHammer Thread Starter Mitglied

    Beiträge:
    3.294
    Zustimmungen:
    13
    Mitglied seit:
    01.06.2004
    Ja, das meiste im Quelltext gibt nur den Inhalt der Variablen wieder aus. Ich will ja erst einmal sehen ob es überhaupt geht, bevor ich das ganze an MYSQl übergebe! Weißt Du wenn ich das Leerzeichen vor size raus mache geht es nicht mehr richtig.

    Mein Probelem ist die Übergabe von der Funktion zurück ans Programm. Das Array ist dann immer leer!
    PHP:
      $feldname[]="";
    So habe ich den feldnamen definiert. Das mit den Globals unten war nur zum testen. ich kann doch auf den Inhalt des array mit $feldname[$i] zugreifen, oder?
     
  8. wegus

    wegus Mitglied

    Beiträge:
    16.010
    Zustimmungen:
    2.571
    Mitglied seit:
    13.09.2004
    Natürlich kannst Du so zugreifen!

    PHP:
    $feldname[$zaehler]=27
    ist völlig korrekt!
    Ich meinte die Leerzeichen in
    PHP:
    "Feld" $i;
    // muss sein:
    ="Feld".$i;
    Der return des GLOBAL-Arrays ist mit Sicherheit nicht richtig und die Frage spannend, was da denn wohl passiert, schließlih dürfte das Array $GLOBALS Readonly sein!

    was passiert denn bei

    PHP:
    $feldname=array();

    function 
    test ()
    {
     global 
    $feldname;
     
    $feldname[3]=7;
     
    $feldname[4]=12;
     
    $feldname[6]=8;


    }
    test();
    print_r($feldname);
    Mehr ist nämlich eigentlich gar nicht nötig! Sollte das Array nach der Funktion leer sein, dann guck mal ob es in der PHP.ini nicht vielleicht bei Zeiten auch dafür einen Switch gibt
     
  9. ThaHammer

    ThaHammer Thread Starter Mitglied

    Beiträge:
    3.294
    Zustimmungen:
    13
    Mitglied seit:
    01.06.2004
    Das Skript hier geht, er bringt den Inhalt des Arrays!

    Machen zwei Formulare eigentlich was aus? Mit dem ersten lese ich die Tabellennamen der Datenbank und baue daraus ein Menu. Die Auswahl wird weiter gegeben und im nächsten Formular wird die Tabelle angezeigt. Dort soll später was zu ändern sein. Der nächste Post schreibt dann alles in die Tabelle. Sobald ich im zweiten die Funktion aufrufe, bekomme ich keine Feldnamen zurück.
     
  10. wegus

    wegus Mitglied

    Beiträge:
    16.010
    Zustimmungen:
    2.571
    Mitglied seit:
    13.09.2004
    Gibst Du denn das array mit? Dann solltest Du es zunächst URL-encoden ( siehe dazu urlencode bei PHP-Manual) und die serialize-Funktion für die Übertragung!
     
Die Seite wird geladen...

MacUser.de weiterempfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Akzeptieren Weitere Informationen...