• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[php]: Formulardaten in arrays setzen

petz_e

New member
Hallo,

Ich habe ein Formular wo folgende Daten eingegeben werden können:

Kontakt Name: 'Fabio'
- 'tel': '555555'
- 'fax': '111111'
- 'email': 'lasdjflkjdsf'

Kontakt Name: 'Knut'
- 'tel': '444444'
- 'tel': '123324'
- 'email': 'asdfsdf'
- 'email': 'sdkfjsdljfksdjf'

Man kann also eine unbegrenzte Anzahl an Kontakten eingeben und pro Kontakt eine unbegrenzte Anzahl an Telefonnummern, Faxnummern usw.

Beim Auslesen dieses Formulars versuche ich die Daten in Arrays zu setzen:

Code:
Kontakt[0] = 'Fabio'
Kontakt[1] = 'Knut'

Typ[0][0] = 'tel'      // fuer Fabio
Typ[0][1] = 'fax'     // fuer Fabio
Typ[0][2] = 'email'  // fuer Fabio
Typ[1][0] = 'tel'     // fuer Knut
...

Nummer[0][0] = '555555'   // fuer Fabio
Nummer[0][1] = '111111'   // fuer Fabio
Nummer[1][0] = '...'          // fuer Knut
...

Hier ist der php code mit dem ich das erreichen will


PHP:
foreach ($_POST as $key=>$value) {
        if (substr($key,0,12) == 'contact_name_') {
          echo "insering contact: $value<br>";
          $contact[$i] = $value;
          $i++;
          $j = 0;
          $k = 0;
        }
        if (substr($key,0,12) == 'number_type_') {
          $type[$i-1][$j] = $value;
          echo "insering type: " . $type[$i-1][$j] . "<br>";
          $j++;
        }
        if (substr($key,0,11) == 'number_num_') {
          $numero[$i-1][$k] = $value;
          echo "insering number: " . $numero[$i-1][$j] . "<br>";
          $k++;
        }
      }

Das Einfügen des Kontaktnamens klappt, beim Einfügen des Typs und der Nummer in die 2-dimensionale Arrays bekomme ich einen 'unvaliden Index Fehler'.

Patrick
 
Ich würde die Datenstruktur anders aufbauen:

PHP:
$persons = array();
$persons["knut"] = array();
$persons["knut"]["tel"] = array('55555', '2222');
$persons["knut"]["fax"] = array();
$persons["knut"]["email"] = array("sdaf@dsf.dw");

Das Einfügen des Kontaktnamens klappt, beim Einfügen des Typs und der Nummer in die 2-dimensionale Arrays bekomme ich einen 'unvaliden Index Fehler'.

ich würde mal drauf tippen das einer deiner indexe < 0 ist. lass dir die mal ausgeben
 
Warum speicherst du die Telefonnummern nicht in einem einzigen Feld mit einem Trennzeichen (z.B. der Punkt oder das Komma). Danach kannst du die Zeichenkette mit explode() aufsplitten und anschließend mit einer for-Schleife ausgeben. Das wäre jetzt ne schnelle und auch einfache Lösung.
 
Warum speicherst du die Telefonnummern nicht in einem einzigen Feld mit einem Trennzeichen (z.B. der Punkt oder das Komma). Danach kannst du die Zeichenkette mit explode() aufsplitten und anschließend mit einer for-Schleife ausgeben. Das wäre jetzt ne schnelle und auch einfache Lösung.
Ach ja, ich vergess das immer wieder. Danke für den Hinweis! :)

Patrick
 
Zurück
Oben