Вы хотите инициализировать тележку с деталями, которые пользователь выбрал для покупки, каждая капля должна
<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>
в качестве альтернативы для больших тележек, печенье является излишеством и загромождать заголовки выше сценарий может затем отправить XHR с идентификатором и сервером затем добавить его в сессии, используя ту же логику, как Javascript делает - в том, что случай, просто замените $ _COOKIE с $ _SESSION
Спасибо mschr. К сожалению, я новичок в dojo, поэтому я не вижу связи между обработчиками событий, о которых вы указали выше, и решением моей проблемы. Наверное, я могу задать свой вопрос таким образом. На первой странице (page1.html) есть контейнеры source1 и target. Однако источник 2 должен находиться на второй странице (page2.html). Как обрабатывать цель, чтобы она отображалась на странице2, принимать больше элементов и отображать их на странице1? –
попробуйте добавить приведенный выше пример к вашей кодовой базе и проверить аргументы с помощью консоли – mschr
Спасибо, mschr. Я попробую! –