Hi zusammen,
ist das jmd. schonmal aufgefallen, dass wenn man in der your account erweiterung zB: "Ich Suche" EINMAL etwas ausgewählt hat, es in der dropdown box dann kein leeres feld mehr gibt sondern das momentan ausgewählte doppelt?
gruß,
jörg
Hmmmm ....
Das bezieht sich jetzt aber doch nicht auf ein im Pragmamx mitgeliefertes Modul/Erweiterung, oder ?
Wüsste nicht, das es dort eine Dropdownbox "Ich suche" gibt ?!
ja doch, die mx_userfunctions_options.sample.php ist doch mitgeliefert. die sorgt ja auch dafür dass man die erweiterten einstellungen hat. ist aber egal welche dropdownbox, es ist bei allen der selbe fehler. auch bei "Familienstand:" genau das selbe problem.
Ja, ein logischer fehler.
Es werden als Defaultfeld die vorigen Eingaben an erster Stelle angezeigt (dort wo sonst das Leerfeld war)
Das müsste man anpassen, so das das Leerfeld erhalten bleibt und die vorige Auswahl nur selektiert wird.
MfG
<option value=\"".((isset($pvs['user_famstatus'])) ? mxPrepareToDisplay($pvs['user_famstatus']) : "")."\">".((isset($pvs['user_famstatus'])) ? mxPrepareToDisplay($pvs['user_famstatus']) : "")."</option>
hier wird ja jedesmal das doppelte feld erzeugt. eigentlich müsste man dann doch nix anderes tun als das option tag zu entfernen, abfragen ob $pvs['user_famstatus'] gesetzt ist und wenn ja mxPreparteToDisplay(....)
find aber die function mxPrepareToDisplay nicht. was genau macht die?
sry aber komm mit der alternativen php schreibweise nicht ganz klar. habs so wie ichs oben beschrieben hab auch schon versucht aber kommt immer ein parse error.
könnten wir das zusammen lösen weil ich find das ist schon n gravierender fehler, wenn man zB. die suche nach einer "Frau" nicht mehr wegbekommt, obwohl man dann eine freundin hat :D da ist die suche nach nem "Mann" auch nicht wirklich ne alternative *kleiner joke*
mein ansatz war folgendes anstatt dem obigen:
if(isset($pvs['user_famstatus'])){
mxPrepareToDisplay($pvs['user_famstatus']);
}
war mehr n test als ein ernster ansatz :red:
gruß
Zitatfunction mxPrepareToDisplay nicht. was genau macht die?
Die bereitet die deten für die Anzeige auf.
Zitateigentlich müsste man dann doch nix anderes tun als das option tag zu entfernen
Nein, es müssen hier 2 Dingegemacht werden.
1. ein einfaches Leerfeld erstellen (das heben wir schon. Wir müssen nur darauf achten das wenn schon
etwas eingegeben wurde, dies nich überschrieben wird)
2. Wenn etwas eingegeben wurde das entspr. Options-Feld als Default vorauswählen
so das dies "selected" ist.
Da sind noch einige Zeilen Code nötig und zwar bei allen
Select/Option Kombinationen wo der Fehler auftritt
hat das jmd. anders schon bei sich bereinigt und könnte hier n beispiel posten bitte?
gruß
habs wie folgt gelöst:
in mx_userfunctions_options.php
zeile 146:
#."<select name=\"user_famstatus\" size=\"1\">
ersetzen durch:
."".vkpFamstatusSelect("user_famstatus",(isset($pvs['user_famstatus'])) ? $pvs['user_famstatus'] : 0)."</td></tr>\n"
zeile 581:
mxPrepareToDisplay($user_famstatus)
ersetzen durch:
vkpGetFamstatusString($user_famstatus)
soweit mit der datei fertig. dann datei mx_userfunctions.php öffnen und folgende zwei func hinzufügen:
//####################################################################
function vkpFamstatusSelect($fieldname, $famstatus = 0, $hidenull = 0)
{
$famstatus = (empty($famstatus)) ? 0 : (int)$famstatus;
$out = "<select name='" . $fieldname . "' size='1'>\n";
if (!$hidenull) {
$out .= "<option value='0'" . (($famstatus == 0) ? " selected" : "") . ">" . _YA_FAMSTAT4 . "</option>\n";
}
$out .= "<option value='1'" . (($famstatus == 1) ? " selected" : "") . ">" . _YA_FAMSTAT1 . "</option>\n";
$out .= "<option value='2'" . (($famstatus == 2) ? " selected" : "") . ">" . _YA_FAMSTAT2 . "</option>\n";
$out .= "<option value='3'" . (($famstatus == 3) ? " selected" : "") . ">" . _YA_FAMSTAT3 . "</option>\n";
$out .= "</select>\n";
return $out;
}
// ################################################
function vkpGetFamstatusString($famstatus = 0)
{
$sexus = (empty($famstatus)) ? 0 : (int)$famstatus;
switch ($famstatus) {
case 0: $out = _YA_FAMSTAT4;
break;
case 1: $out = _YA_FAMSTAT1;
break;
case 2: $out = _YA_FAMSTAT2;
break;
case 3: $out = _YA_FAMSTAT3;
break;
}
return $out;
}
languagefile famstatus 1-4 sieht bei mir so aus:
define("_YA_FAMSTAT1","single");
define("_YA_FAMSTAT2","vergeben");
define("_YA_FAMSTAT3","verliebt");
define("_YA_FAMSTAT4","kein Interesse");
so und bei den restlichen dropdownboxen halt das selbe in grün!
hmm ideal wär jetzt noch wenn das auch irgendwie in der modify user für den admin drin wäre.
weil da sind nur die normalen felder.