Hi Leute, folgendes Problem:
- Ich möchte Namen in jeweilig dynamisch erstelle Gruppen verschieben, leider funktioniert dies nur bedingt sobald ich das Script dynamisch gestalte, das heisst wenn ich die Inputs keine festen Namen gebe.
Ich weiß wo der Fehler liegt aber kriegs nicht hin
Erstmal der Code:
Body:
Der Fehler liegt oben in der grpList, ich habs schon mit nem Array probiert aber das ging nicht. "undefined" erscheint dann in den Boxes.
Die dynamisch erstellten Inputs bau ich später als hidden um damit ich mit php weiter arbeiten kann.
Wenn ich jetzt die dynamischen Zeilen aktiviere und die festen deaktiviere funktioniert es zwar, ABER er löscht dann die Namen nicht wieder aus der Box, ich müsste erneut auf die Liste klicken aber das is ja mist ;\
Ich hoffe ich habe mein Problem gut erläutert, bei Fragen raus damit.
// EDIT
Hier liegt der Fehler, er schreibt nur ins neue Input und bearbeitet die andern nicht :S
Bsp:
Wenn Name1 ich aus Prod1 in Prod2 verschiebe löscht er Name1 in Prod1 nicht
Jmd ne Idee parat, denke mit IF prüfen ob der name existiert wäre zu umständlich, das muss einfacher gehen.
- Ich möchte Namen in jeweilig dynamisch erstelle Gruppen verschieben, leider funktioniert dies nur bedingt sobald ich das Script dynamisch gestalte, das heisst wenn ich die Inputs keine festen Namen gebe.
Ich weiß wo der Fehler liegt aber kriegs nicht hin

Erstmal der Code:
PHP-Code:
<script type="text/javascript">
window.addEvent('domready', function(){
//Inputs erstellen
obj = document.getElementsByTagName("ul");
for (var i = 0; i < obj.length; i++) {
var myBox = document.createElement("input");
myBox.setAttribute("name","group[]");
myBox.setAttribute("id", "box" + obj[i].id);
document.getElementById("derdiv").appendChild(myBox);
}
//Sortierbar machen
var mySortables = new Sortables('#main, #prod1, #prod2', {
constrain: false,
clone: true,
revert: true,
onComplete: function(data){
saveOrder(data)
}
});
});
//in Inputs speichern
function saveOrder (data) {
var grpList = "";
ID = data.parentNode.id;
orderDivs = document.getElementById("prod1").getElementsByTagName("li"); // fest
//orderDivs = data.parentNode.getElementsByTagName("li"); //dynamisch
for (i = 0; i < orderDivs.length; i++) {
var entryId = orderDivs[i].firstChild.nodeValue;
grpList += entryId + ";";
}
document.getElementById('boxprod1').value = grpList; // fest
//document.getElementById('box' + ID).value = grpList; // dynamisch
}
</script>
PHP-Code:
<div id="derdiv">
<ul class="myList anotherList" id="main">
<li>Item #1</li>
<li>Item #2</li>
<li>Item #3</li>
<li>Item #4</li>
<li>Item #5</li>
<li>Item #1</li>
</ul>
<ul class="myList anotherList" id="prod1">
</ul>
<ul class="myList anotherList" id="prod2">
</ul>
</div>
Die dynamisch erstellten Inputs bau ich später als hidden um damit ich mit php weiter arbeiten kann.
Wenn ich jetzt die dynamischen Zeilen aktiviere und die festen deaktiviere funktioniert es zwar, ABER er löscht dann die Namen nicht wieder aus der Box, ich müsste erneut auf die Liste klicken aber das is ja mist ;\
Ich hoffe ich habe mein Problem gut erläutert, bei Fragen raus damit.
// EDIT
PHP-Code:
document.getElementById('box' + ID).value = grpList;
Bsp:
Wenn Name1 ich aus Prod1 in Prod2 verschiebe löscht er Name1 in Prod1 nicht

Jmd ne Idee parat, denke mit IF prüfen ob der name existiert wäre zu umständlich, das muss einfacher gehen.
Kommentar