Globale Variablen Teil II

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von ThaHammer, 26.03.2005.

  1. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    Registriert 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 MacUser Mitglied

    Beiträge:
    19
    Zustimmungen:
    0
    Registriert 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 MacUser Mitglied

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

    Spike MacUser Mitglied

    Beiträge:
    16.504
    Zustimmungen:
    142
    Registriert seit:
    16.09.2003
    Ihr könnt ja tolle Sachen! :eek:


    kopfkratz
     
  5. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

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

    wegus MacUser Mitglied

    Beiträge:
    15.039
    Zustimmungen:
    1.315
    Registriert 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!?
     
    Zuletzt bearbeitet: 26.03.2005
  7. ThaHammer

    ThaHammer Thread Starter MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    Registriert 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 MacUser Mitglied

    Beiträge:
    15.039
    Zustimmungen:
    1.315
    Registriert 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 MacUser Mitglied

    Beiträge:
    3.276
    Zustimmungen:
    13
    Registriert 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 MacUser Mitglied

    Beiträge:
    15.039
    Zustimmungen:
    1.315
    Registriert 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...

Diese Seite empfehlen