Input: <select value="CMS_VAR[0][] ...> nicht mög
-
- Beiträge: 40
- Registriert: Di 13. Mär 2007, 17:01
- Kontaktdaten:
Input: <select value="CMS_VAR[0][] ...> nicht mög
Hallo
Ich möchte im Input eine Selct-Box mit mehrfachauswahl benutzen, welche dann die werte an den Output via CMS_VAR sendet. Um ein Array vom einer select box zu herhalten, muss es heissen: name="DEINNAME[]".
Die beiden eckigen Klammern ermöglichen die übergabe eines arrays.
Leider bekomme ich aber eine fehlermeldung wenn ich CMS_VAR[0][] übergeben möchte, wie kann ich das umgehen? bsw. ein array an das output übergeben (ohne db wenn möglich)
Ich möchte im Input eine Selct-Box mit mehrfachauswahl benutzen, welche dann die werte an den Output via CMS_VAR sendet. Um ein Array vom einer select box zu herhalten, muss es heissen: name="DEINNAME[]".
Die beiden eckigen Klammern ermöglichen die übergabe eines arrays.
Leider bekomme ich aber eine fehlermeldung wenn ich CMS_VAR[0][] übergeben möchte, wie kann ich das umgehen? bsw. ein array an das output übergeben (ohne db wenn möglich)
das geht momentan nur mit der serialize funktion
also
und im output dann mit unserialize
also
Code: Alles auswählen
"CMS_VAR[0]" = serialize($MeinArray);
Code: Alles auswählen
$MainArray = unserialize( "CMS_VALUE[0]" );
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
-
- Beiträge: 40
- Registriert: Di 13. Mär 2007, 17:01
- Kontaktdaten:
achso - die cms vars müssen in ner input übergeben werden. habe schon länger nix mehr in contenido inputs gemacht.
ok dein problem ist ja, dass du ne multiselectbox hast, deren mehere werte du übergeben willst.
du brauchst im input also einmal deine multiselectbox und ein hidden field, was dein cms_var enthält. dazu noch eine kleine javascript funktion, die dir die werte aneinanderfügt (also serialisiert)
das ist ein beispielhafter input:
das füllt dir bei multiselect das hidden feld nach folgender art: 1|2|3
der output schaut dann so aus:
ok dein problem ist ja, dass du ne multiselectbox hast, deren mehere werte du übergeben willst.
du brauchst im input also einmal deine multiselectbox und ein hidden field, was dein cms_var enthält. dazu noch eine kleine javascript funktion, die dir die werte aneinanderfügt (also serialisiert)
das ist ein beispielhafter input:
Code: Alles auswählen
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function getMultiSelVals(el)
{ // return multiselect array as string
if ( !el ) { alert("Bitte das Multiselect Element angeben!");return }
selectedVals = ''
sep='|'
for(i = 0; i < el.length; i++)
if ( el.options[i].selected == true )
selectedVals += (selectedVals>''? sep: '') + el.options[i].value;
return (selectedVals);
}
-->
</script>
<select name="multiselect" multiple="multiple"
onchange="javascript:document.getElementById('meintextfeld').value=getMultiSelVals(this);"
>
<option value="1">wert1</option>
<option value="2">wert2</option>
<option value="3">wert3</option>
</select>
<br><br>
<input id="meintextfeld" type="hidden" name="CMS_VAR[100]" value="" />
<?php
der output schaut dann so aus:
Code: Alles auswählen
<?php
$meinArray = explode("|", "CMS_VALUE[100]");
print_r ( $meinArray );
?>
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
-
- Beiträge: 40
- Registriert: Di 13. Mär 2007, 17:01
- Kontaktdaten:
Input Auswahl Selektinierungs-Werte verwenden
Herzlichen Dank, funktioniert wunderbar.
Nun habe ich betreffend dem Input noch eine kleine Frage:
Nachdem ich die Kategorien ausgewählt habe, rufe ich die Konfiguration nochmals auf, nun werden zwar die jeweiligen Kategorien selektioniert, aber diese selektionierten "Werte" werden danach nicht verarbeitet, wenn ich z.b. einfach speichere oder etwas anderes in der Konfiguration verändere.
Nur wenn ich min. 1 selektionierter Wert wieder auswähle, werden die werte beim speichern verarbeitet.
wie kann ich das abfangen, so dass man diese Konfiguration nur einmal einstellen muss?
Thx vielmals
Hier noch der Input Code:
betrifft diese Zeilen:
Nun habe ich betreffend dem Input noch eine kleine Frage:
Nachdem ich die Kategorien ausgewählt habe, rufe ich die Konfiguration nochmals auf, nun werden zwar die jeweiligen Kategorien selektioniert, aber diese selektionierten "Werte" werden danach nicht verarbeitet, wenn ich z.b. einfach speichere oder etwas anderes in der Konfiguration verändere.
Nur wenn ich min. 1 selektionierter Wert wieder auswähle, werden die werte beim speichern verarbeitet.
wie kann ich das abfangen, so dass man diese Konfiguration nur einmal einstellen muss?
Thx vielmals
Hier noch der Input Code:
Code: Alles auswählen
$selSubnav = explode("|", "CMS_VALUE[100]");
var_dump($selSubnav);
$countSelSubnavi = count($selSubnav);
?>
<table cellspacing="0" cellpadding="0" cellpadding="4">
<tr>
<td align="left" valign="top"><?php echo mi18n("Navigationsebenen auswählen");?>:</td>
<td>
<script language="JavaScript" type="text/JavaScript">
<!--
function getMultiSelVals(el)
{ // return multiselect array as string
if ( !el ) { alert("Bitte das Multiselect Element angeben!");return }
selectedVals = ''
sep='|'
for(i = 0; i < el.length; i++)
if ( el.options[i].selected == true )
selectedVals += (selectedVals>''? sep: '') + el.options[i].value;
return (selectedVals);
}
-->
</script>
<?php
echo "<select name=\"multiselect\" style=\"height: 200px;\" multiple=\"multiple\" onchange=\"javascript:document.getElementById('meintextfeld').value=getMultiSelVals(this);\">";
// fetch all categorys
$query = "SELECT A.idcat, A.level, C.name FROM ".$cfg["tab"]["cat_tree"]." AS A, ".
$cfg["tab"]["cat"]." AS B, ".$cfg["tab"]["cat_lang"]." AS C WHERE A.idcat=B.idcat ".
"AND B.idcat=C.idcat AND C.idlang='$lang' AND B.idclient='$client' ".
"AND C.visible=1 ORDER BY A.idtree";
// execute query
$db->query($query);
// loop result and build the options
while ($db->next_record()) {
// how many levels
$levels = 3;
if ( $db->f("level") == 0) {
$spaces = "";
} elseif ($db->f("level") == 1) {
$spaces = "->";
}elseif ($db->f("level") == 2) {
$spaces = "---->";
}elseif ( $db->f("level") == 3) {
$spaces = "-------->";
}
if ( $db->f("level") < 4) {
foreach ($selSubnav as $key => $value) {
if ($selSubnav != "" && $db->f("idcat") == $value){
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces .$db->f("name") ."</option>";
$ActSelId = $value;
}
}
if ($db->f("idcat") != $ActSelId){
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
}
}
} // end while
echo " </select><input id=\"meintextfeld\" type=\"hidden\" name=\"CMS_VAR[100]\" value=\"\" />";
?></td>
</tr>
</table>
<?php
Code: Alles auswählen
foreach ($selSubnav as $key => $value) {
if ($selSubnav != "" && $db->f("idcat") == $value){
echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces .$db->f("name") ."</option>";
$ActSelId = $value;
}
}
if ($db->f("idcat") != $ActSelId){
echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>";
}
das hidden field so schreiben:
Code: Alles auswählen
<input id="meintextfeld" type="hidden" name="CMS_VAR[100]" value="CMS_VALUE[100]" />
Suchmaschinenfreundliche URLS durch Advanced ModRewrite 4.6.x
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
Module: Modul Download Liste 4.6 | Halbautomatischer Artikel-Seitenwechsel 4.6.x
Amazon Wunschzettel
-
- Beiträge: 40
- Registriert: Di 13. Mär 2007, 17:01
- Kontaktdaten:
-
- Beiträge: 40
- Registriert: Di 13. Mär 2007, 17:01
- Kontaktdaten: