Hallo, ich habe ein riesen Problem, bei dem ich überhaupt nicht weiter komme. Hauptproblem ist wahrscheinlich, dass ich relativ neu in PHP bin und bestimmt Konzepte noch nicht verstehe.
Ich versuche gerade ein php-Skript für meine Webseite anzupassen.
Hauptproblem bei dem Mail-Skript ist, dass dort auch leere Felder per Mail versendet werden.
Das Formular ist mit verschachtelten Arrays aufgebaut. Also ein Array kann ein Array enthalten, dieses wiederum auch, ... usw.
Nun möchte ich per Mail ein bestimmtes Array verschicken, auf das ich auch zugreifen kann
$form_values['submitted_tree']
Dieses kann ich nun nach leeren Feldern durchsuchen und rausnehemn:
PHP-Code:
foreach ($form_values['submitted_tree'] as $key => $value) {
if ($value == '') {
unset($form_values['submitted_tree'][$key]);
}
}
print theme('webform_mail_fields', 0, $form_values['submitted_tree'], $node);
?>
Nun ist aber die Ausgabe von $value auch manchmal ein neues Array also
is_array($value) ist wahr.
Nun habe ich aber keinen Plan, wie ich dieses neue Unterarray anspreche und auch dort nach leeren Feldern suche.
Ich habe es folgendermaßen probiert, was aber überhaupt keine Änderung bring.
PHP-Code:
foreach ($form_values['submitted_tree'] as $key => $value) {
if ($value == '') {
unset($form_values['submitted_tree'][$key]);
}
if( is_array($value) ) {
foreach ($form_values['submitted_tree'][$key] as $key2 => $value2) {
if ($value2 == '') {
unset($form_values['submitted_tree'][$key][$key2]);
}
}
}
}
print theme('webform_mail_fields', 0, $form_values['submitted_tree'], $node);
?>
Wie gesagt, habe ich zwischen Funktion 1 und 2 keinerlei Änderung in der resultierenden E-Mail. Wahrscheinlich mache ich hier was grundsätzlich falsch. Könnt ihr mir helfen? Bin schon seid Tagen dabei mir über das Internet ne Lösungsmöglichkeit zu suchen aber bisher ohne Erfolg ;-(
Vielleicht noch wichtig ist ein Auszug des Gesamtarrays:
Code:
....
[submitted_tree] => Array
(
[bezeichnung1] => Die Hauptangabe
[anzahl] => 1
[weitere_angabe] => Array
(
[bezeichnung2] =>
[anzahl2] =>
[weitere_angabe] => Array
(
[bezeichnung3] =>
[anzahl3] =>
... usw
Wichtig ist auch, dass ich mich hier schon gar nicht mehr auf der Hauptebene des Arrays befinde, sondern nur ein Sub-Array weiter auslesen möchte.
Hoffe, hier kann mir jemand helfen!
vistree