select multiple variable übergeben

dan2web

Grünschnabel
Ich habs fast geschafft. Nur die Werte bekomm ich noch ned ^^

Folgendes:
Hab zwei Select Boxen multiple

Code:
<select multiple name="frombox" id="frombox"  ondblclick="moveOptions(this, document.forms[0].tobox, true);">
<option value="1">Test1</option>
usw.
</select>

Die zweite Box ist natürlich ähnlich:
Code:
<select multiple name="tobox" id="tobox"  ondblclick="moveOptions(this, document.forms[0].frombox, true);">
<option value="20">Test20</option>
usw.
</select>

Durch Doppelklick auf einen Wert in einer der beiden Boxen, springt der Wert in die andere Box. So soll es sein.

Die Funktion moveOpsions sieht so aus:
Code:
function moveOptions(fromObj, toObj, sort) {
	var optionArray = new Array();
	
	optionArray = optionsToArray(fromObj, 1, 1);
	insertOptions(toObj, optionArray, toObj.selectedIndex + 1);
	toObj.selectedIndex = -1;
	selectOptions(toObj, optionArray, compareObjTextString, true, false);

	if (sort == true) {
		sortOptions(toObj, compareObjTextString);
	}

	return optionArray;
}

In dem Formular habe ich noch eine Variable eingebaut:

Code:
<input type="hidden" name="groups" value="">

Das Formular Tag sieht so aus:
Code:
<form id="blue" action="index.php" method="post" target="_self" onsubmit="send(); document.forms[0].submitFlag = true;">

Und das JavaScript dazu sieht so aus:
Code:
<script language="javascript">
<!--
function send() {
var f_name = document.forms[0].name;
var f_sel = document.forms[0].tobox;


document.forms[0].groups.value = optionToString(optionsToArray(f_sel, 2, 1)).join();
if (window.opener) {
if (window.opener.newObj) {
window.opener.newObj.name = document.forms[0].name.value
} else if (window.opener.overlibObj) {
window.opener.newOverlibText = document.forms[0].groups.value;
}
}

return true;
}
//-->
</script>

Ich muss dazu sagen .. ich hab das ganze wo abgeschaut. Ich selbst kann zwar php programmieren, aber leider nicht javascript. Das hin und her schalten der Einträge geht super. Nur die Variable "groups" im Hidden feld, liefert nicht alle Werte der "ToBox".
Die Variable sollte alle Werte enthalten die in "ToBox" stehen. Egal ob markiert oder nicht.
Ich hab ewig gebraucht um so weit zu kommen, und einiger Code ist sicher überflüssig. Aber wenn mir jemand helfen könnte wär ich sehr dankbar !

Ich weis hier einfach nicht mehr weiter ... wie soll ich alle Werte der "ToBox" in die Variable "groups" bekommen ?
 
Willst Du die Variable groups in php oder Javascript weiterverwenden? Denn groups mußt Du nach dem Absenden als Array verarbeiten.
 
ja das hab ich auch. Ich will es in PHP weiterverarbeiten.

Habe dazu folgenden Code:
Code:
$groups = $HTTP_POST_VARS['groups'];
for ($i=0; $i<count($groups); $i++) {
  echo "$groups[$i]<br>\n";
}
... testweise angelegt. Eine Variable steht da auch drinn, aber leider nicht alle
Variablen der Select Box "ToBox".
 
Hab was übersehen. Wenn Du die übergebenen Daten auswerten willst, mußt Du mit den Variablen frombox und tobox arbeiten.

Zum testen kannste Du Dir ja auch mal

PHP:
print_r($_POST);
echo("<hr>");

ausgeben lassen um zu sehen, was alles an Daten übergeben wird.
 
Hi,

wenn Du folgendes Script im onsubmit-Event aufrufst, sollten die Optionen der Select-Box ins Feld groups
geschrieben werden.
Code:
function send(objForm){
	var objToBox = objForm.elements["tobox"];
	for(var i=0; i<objToBox.length; i++){
  	objForm.elements["groups"].value += objToBox.options[i].value+"#"+objToBox.options[i].text+";";
  }
}
Jede Option wird dabei mit value und zugehörigem text eingetragen. Komplette Optionen werden hierbei
durch ; (Semikolon) getrennt, value und text durch #. Dadurch wird es bei der Auswertung möglich, die
Komponenten wieder zu trennen.

Aufgerufen wird das Script wie folgt:
Code:
<form id="blue" action="index.php" method="post" target="_self" onsubmit="send(this); document.forms[0].submitFlag = true;">
Vielleicht hilft Dir das weiter.

Ciao
Quaese
 

Neue Beiträge

Zurück