Ergebnis 1 bis 11 von 11
  1. #1
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913

    einlesen von feld namen

    *umguck* bin ich hier richtig php *g*
    jop....hab mich jetzt mal in diese sache verlaufen....

    zum thema:

    hab ein formular, alle felder mit eine name betitelt.
    feld0, feld1,feld2........usw

    nun will ich aber nicht für jede variable ein echo schreibe....
    somit hab ich zuerst die variablen in ein array gepakt
    felder = array($feld0,$feld1,$feld2.......);

    und mit foreach ausgeben lassen, das klappt!

    doch ist mir das auch viel zu blöd immer, falls ein inputfeld dazu kommt, den neuen feldnamen in das array zu schreiben.
    drum möchte ich sie mit einer for schleife einlesen lassen.
    und zwar so:

    PHP-Code:
    $felder = array();
    for (
    $i=0;$i<=6;$i++)
    {
        
    $felder[$i] = $feld+$i;

    hier gibt er mir dann aber wenn ich sie so ausgeben lasse nur zahlen aus, und zwar die von der variable $i:

    PHP-Code:
    foreach ($felder as $field)
    {
        echo 
    "ausgabe: $field<br>";

    komisch ist nur das in der adressleist ja feld0=fhds,feld1=fhdsk,feld2=fdhsjkfh........
    steht.....

    jo, die berühmte frage, was mach ich falsch?oder gibts eine methode die die beiden variablen zusammen führt zu einer, damit ich sie ausgeben kann?

    thx

  2. #2
    odyss ist offline Eroberer
    registriert
    18-12-2001
    Beiträge
    71
    vielleicht so:

    $felder = array();
    for ($i=0;$i<=6;$i++)
    {
    $felder[$i] = "feld".$i;
    }

    odyss

  3. #3
    ABNetworks.DE ist offline Routinier
    registriert
    13-01-2003
    Beiträge
    338
    Du kannst die Zeile $felder=new Array(); sogar weglassen. Vielleicht muss man das auch. Habe so etwas nämlich bei php noch nie gesehen. Arbeite aber niicht viel damit

  4. #4
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    @odyss
    hab ich auch schon probiert.....da gibt er mir nur die feld0,feld1,feld2....aus....

    gibts nicht eine methode die ein string in variablen umwandelt?

    @abn
    joah geht auch so.....

  5. #5
    odyss ist offline Eroberer
    registriert
    18-12-2001
    Beiträge
    71
    ich weis nicht genau was du willst.
    Weshalb willst Du Variablen ausgeben?
    Wenn Dein Formularfeld so ist:
    name = bla,
    dann wandelt php in der aufgerufenen Seite das um in
    $bla = hjgh..
    oder noch genauer
    $_GET['bla']= hjgi..
    oder $_POST..

    odyss

  6. #6
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    ja eben ich will einfach nicht jeden feldnamen als varaible aufführen....bin ich zu falu zu!

    will also nicht

    echo $feld0;
    echo $feld1;
    echo $feld2;
    echo $feld3;
    .......

    schreiben, sondern die variablen in ein array einlesen lassen.

    wenn ich das so mache :
    $felder = array($feld0,$feld1,$feld2,......);
    und es ausgeben lasse geht es.

    aber das ist mir immer noch zuviel schreibarbeit....
    deswegen will ich sie so:

    $felder = array();
    for ($i=0;$i<=6;$i++)
    {
    $felder[$i] = $feld+$i;
    }

    einlesen lassen....
    in js geht sowas wunderbar.....
    naja....

    gleich noch ne andere frage, kann man die foreach-schleife erweitern? also wie bei der for-schleife!

    bei der forschleife geht das so....
    for ($i=0,$ii=5; $i<5,$ii>5; $i++,$ii--)

    wie kann man das also mit der foreach-schleife machen....??
    foreach ($felder as $field)

  7. #7
    Avatar von planet4
    planet4 ist offline Kaiser
    registriert
    06-06-2002
    Ort
    Regensburg
    Beiträge
    1.417
    hallo,

    also hier ist glaub ich der Fehler:
    Code:
    $felder[$i] = $feld+$i;
    du musst beim Einlesen schon den Wert von $feld und den von $i richtig aneinanderhängen, und zwar mit "."
    dann müsstest du es mit foreach ausgeben können....
    probiers einfach noch mal

    planet4.

  8. #8
    Avatar von Comet
    Comet ist offline Administrator
    registriert
    17-09-2001
    Ort
    Austria | Westendorf
    Beiträge
    2.182
    Hallo wom!

    Wie macht man das in JS ???? -> funktioniert genauso 'eval'
    ..:::Andi:::..

  9. #9
    Avatar von Comet
    Comet ist offline Administrator
    registriert
    17-09-2001
    Ort
    Austria | Westendorf
    Beiträge
    2.182
    Noch was:

    Wenn du die felder einfach alle feld[] benennst bekommst du auf der Zielseite ein array $feld[].
    ..:::Andi:::..

  10. #10
    Avatar von womstar
    womstar ist offline Lounge-Member
    registriert
    22-07-2002
    Ort
    latente matrix
    Beiträge
    5.913
    also mit eval hab ich das auch schon probiert das war ja mein erster ansatzpunkt, aber das geht auch nicht, fehler!

    egal, aber das mit dem "feld[]" is geil! und klappt super! und ist sogar schön kurz und knapp!

    dank dir comet und auch dir odyss und planet4

    na das kann ja lustig werden mit php

  11. #11
    Avatar von rasputin
    rasputin ist offline Lounge-Member
    registriert
    31-10-2001
    Beiträge
    3.102
    du hast zwar schon eine lösung, aber ich zeige dir doch noch die lösung zu deinem ursprünglichen problem:

    ich schreibe auch immer $varname = array(); es wird zwar nicht wirklich gebraucht, aber ich finde, der code wird sauberer.
    PHP-Code:
    // mit register_globals = on
    $felder = array();
    for (
    $i=0;$i<=6;$i++) {
      
    $felder[] = ${$feld.$i};
    }

    // mit register_globals = off
    $felder = array();
    for (
    $i=0;$i<=6;$i++) {
      
    $felder[] = $_POST[$feld.$i]; // bzw. $_GET, $_COOKIE, $_FILES, $_SERVER, $_ENV

    ps. du musst bei deinen scripts aufpassen, dass sie noch funktionieren, wenn man 'register_globals' abschaltet. also schreibe anstatt '$formularfeld' einfach $_POST['formularfeld']

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •