Benutzerdefinierte Suche

Globale Variablen Teil II

  1. ThaHammer

    ThaHammer Thread StarterMacUser Mitglied

    Mitglied seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    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?
     
    ThaHammer, 26.03.2005
  2. broxx

    broxxMacUser Mitglied

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

    return $feldname;

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

    KatanaMacUser Mitglied

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

    SpikeMacUser Mitglied

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


    kopfkratz
     
    Spike, 26.03.2005
  5. ThaHammer

    ThaHammer Thread StarterMacUser Mitglied

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

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    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!?
     
    wegus, 26.03.2005
  7. ThaHammer

    ThaHammer Thread StarterMacUser Mitglied

    Mitglied seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    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?
     
    ThaHammer, 26.03.2005
  8. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    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
     
    wegus, 26.03.2005
  9. ThaHammer

    ThaHammer Thread StarterMacUser Mitglied

    Mitglied seit:
    01.06.2004
    Beiträge:
    3.277
    Zustimmungen:
    13
    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.
     
    ThaHammer, 26.03.2005
  10. wegus

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    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!
     
    wegus, 26.03.2005
Die Seite wird geladen...
Ähnliche Themen - Globale Variablen Teil
  1. apstalker
    Antworten:
    3
    Aufrufe:
    693
    apstalker
    12.12.2012
  2. macfan97
    Antworten:
    8
    Aufrufe:
    597
    macfan97
    25.11.2010
  3. sempai0815
    Antworten:
    1
    Aufrufe:
    393
    Schiffinho
    10.09.2009
  4. cilex
    Antworten:
    4
    Aufrufe:
    582
    chrizke
    14.08.2008
  5. MXWorker
    Antworten:
    10
    Aufrufe:
    929
Benutzerdefinierte Suche