Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.
Seiten: 1
#1 12. Mai 2016 14:54
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
[GELÖST] Formbuilder, UDT und Weiterleitung/Ergebnis-Seite
Hallo,
hänge gerade mal wieder ...
Ich bin gerade dabei mit Hilfe des Formbuilders und eines UDT eine Umgebungssuche zu programmieren.
Das Such-Formular soll auf der Startseite angezeigt werden, die Ergebnisse auf einer Ergebnis-Seite (anderer Header, anderer Seiten-Titel etc.).
Im Formbuilder gibt es ja die Möglichkeit, nicht die Bestätigung anzuzeigen sondern auf eine andere Seite weiterzuleiten.
Allerdings bekomme ich dort nicht die Ergebnisse des UDT angezeigt.
Der UDT sieht so aus:
[== UDT / PHP ==]
require_once("uploads/plznearby/ogdbPLZnearby2.lib.php");
require_once("uploads/plznearby/array_sort.php");
$sort = (array_sort((ogdbPLZnearby($params['plz'],$params['umkreis'],true,true)), 'dist', SORT_ASC)); // Ausgabe nach Entfernung sortieren und in neuem array speichern
$smarty->assign('result',$sort); // Sortiertes array als Variable übergeben
Die Daten liegen als am Ende in $result vor. Arbeite ich ohne o.g. Weiterleitung und binde die Variable in dieselbe Seite ein in der auch das Formular liegt, ist es kein Problem - das Ergebnis wird ausgegeben.
Setze ich die Weiterleitung auf die Ergebnis-Seite und binde die Variable dort ein, kommt nichts ...
Hab ich hier einen Denkfehler? Oder funktioniert es in dem Fall anders? Geht es überhaupt?
PS: Diese Umgebungssuche ist übrigens ziemlich genial und sogar ich kapiere, was da passiert https://www.vektorkneter.de/postleitzah … opengeodb/
Beitrag geändert von jeff1980 (12. Mai 2016 14:55)
Offline
#2 12. Mai 2016 15:56
- nockenfell
- Moderator
- Ort: Gontenschwil, Schweiz
- Registriert: 09. November 2010
- Beiträge: 2.934
- Webseite
Re: [GELÖST] Formbuilder, UDT und Weiterleitung/Ergebnis-Seite
Du musst die Parameter in der Session speichern. Da du eine Weiterleitung machst, sind die Umgebungsvariablen danach weg.
$_SESSION["formresult"]=$result;
Auf der neuen Seite kannst du danach mit {$smarty.session.formresult} die Daten auslesen.
[dieser Beitrag wurde mit 100% recycled bits geschrieben]
Mein Blog / Diverse Links rund um CMS Made Simple
Module: btAdminer, ToolBox
Offline
#3 12. Mai 2016 16:07
- jeff1980
- Server-Pate
- Ort: Dortmund
- Registriert: 26. November 2010
- Beiträge: 630
Re: [GELÖST] Formbuilder, UDT und Weiterleitung/Ergebnis-Seite
Cool, danke.
Funktioniert - da wär ich nie drauf gekommen.
Hier noch mal für die "Nachwelt":
Der UDT sieht jetzt so aus:
[== UDT / PHP ==]
require_once("uploads/plznearby/ogdbPLZnearby2.lib.php");
require_once("uploads/plznearby/array_sort.php");
$sort = (array_sort((ogdbPLZnearby($params['plz'],$params['umkreis'],true,true)), 'dist', SORT_ASC)); // Ausgabe nach Entfernung sortieren und in neuem array speichern
$_SESSION["result"]=$sort; // Sortiertes array in Session speichern
Bei der Weiterleitungs-Seite habe ich
[== smarty ==]
{$smarty.session.result|print_r}
eingefügt und die Ausgabe funktioniert - entsprechend kann ich die Daten dort jetzt weiter verarbeiten.
Noch ein Hinweis zur Sortierung:
Hätte ich ja auch mit tbArraySort aus der Toolbox machen können - allerdings werden Zahlen dort falsch sortiert: 1, 10, 2, 3 usw.
Deshalb habe ich diese Funktion aus dem Netz gewählt:
[== php ==]
<?php
// multidimensionalen array sortieren
function array_sort($array, $on, $order=SORT_ASC)
{
$new_array = array();
$sortable_array = array();
if (count($array) > 0) {
foreach ($array as $k => $v) {
if (is_array($v)) {
foreach ($v as $k2 => $v2) {
if ($k2 == $on) {
$sortable_array[$k] = $v2;
}
}
} else {
$sortable_array[$k] = $v;
}
}
switch ($order) {
case SORT_ASC:
asort($sortable_array);
break;
case SORT_DESC:
arsort($sortable_array);
break;
}
foreach ($sortable_array as $k => $v) {
$new_array[$k] = $array[$k];
}
}
return $new_array;
}
?>
Offline
Seiten: 1