Вы хотите инициализировать свою корзину товарами, которые пользователь выбрал для покупки, каждая выпадающая
<script>
function dropped(source, nodes, copy, target) {
if(target.id == "myCardId") {
var list = dojo.cookie("mycart");
// split or initialize list (delimiter : comma)
list = list = "" ? [] : list.split(",");
if(dojo.indexOf(nodes[0].id), list) != -1)
// allready there, return
return;
else {
// combine list with every dropped node
dojo.forEach(nodes, function(dropItem) { list.push(dropItem.id); });
// set cookie with new variable
dojo.cookie("mycart", list.join(",");
}
}
}
....
dojo.subscribe("dnd/drop", dropped);
</script>
Может быть реализовано на PHP таким образом, хотя я не буду вдаваться в подробности того, как вы получаете представление элементов, ради примера - они у вас есть в db_data;
<?php
if(isset($_COOKIE) && !empty($_COOKIE['mycart'])) {
$cartContents = "<ul class=\"dndContainer\">";
foreach(explode(",", $_COOKIE['mycart']) as $id)
$cartContents .= "<li class=\"dndItem\">".$db_data[$id]->title."</li>";
$cartContent .= "</ul>";
}
?>
<div id="dragSource"><? print generateView(); ?></div>
<div id="myCartId"><? print $cartContents; ?></div>
в качестве альтернативы для больших тележек файл cookie является излишним и будет загромождать заголовки. Приведенный выше скрипт может затем отправить XHR с идентификатором и сервером, а затем добавить его к сеансу, используя ту же логику, что и javascript - в этом случае просто замените $_COOKIE на $_SESSION
person
mschr
schedule
07.05.2012