Я пытаюсь реализовать встраивание dynatree в пример форм, приведенный на этом сайте.
Это код скрипта:
<script type="text/javascript">
$(function(){
$("#tree").dynatree({
checkbox: true,
selectMode: 3,
onSelect: function(select, node) {
// Display list of selected nodes
var selNodes = node.tree.getSelectedNodes();
// convert to title/key array
var selKeys = $.map(selNodes, function(node){
return "[" + node.data.key + "]: '" + node.data.title + "'";
});
$("#echoSelection4").text(selKeys.join(", "));
},
// In real life we would call a URL on the server like this:
// initAjax: {
// url: "/getTopLevelNodesAsJson",
// data: { mode: "funnyMode" }
// },
// .. but here we use a local file instead:
initAjax: {
url: "sample-data3.json",
data: { mode: "funnyMode" }
},
onActivate: function(node) {
$("#echoActive").text(node.data.title);
},
onDeactivate: function(node) {
$("#echoActive").text("-");
}
});
$("form").submit(function() {
// Serialize standard form fields:
var formData = $(this).serializeArray();
// then append Dynatree selected 'checkboxes':
var tree = $("#tree").dynatree("getTree");
formData = formData.concat(tree.serializeArray());
// and/or add the active node as 'radio button':
if(tree.getActiveNode()){
formData.push({name: "activeNode", value: tree.getActiveNode().data.key});
}
alert("POSTing this:\n" + jQuery.param(formData));
$.post("<?php echo APP_URL;?>admin/submit_data.php",
formData,
function(response, textStatus, xhr){
alert("POST returned " + response + ", " + textStatus);
}
);
return false;
});
});
</script>
И внутри <body>
tag:
<form>
Username: <input type="text" name="userName" />
<br>
<textarea name="comment"></textarea>
<br>
<input type="radio" name="rb1" value="foo" checked> Foo
<input type="radio" name="rb1" value="bar"> Bar
<input type="radio" name="rb1" value="baz"> Baz
<br>
<input type="checkbox" name="cb1" value="John" checked>John
<input type="checkbox" name="cb1" value="Paul">Paul
<input type="checkbox" name="cb1" value="George">George
<input type="checkbox" name="cb1" value="Ringo">Ringo
<br>
<!-- The name attribute is used by tree.serializeArray() -->
<div id="tree" name="selNodes">
</div>
<input type="submit" value="Send data">
И в submit_data.php у меня есть
print_r($_POST);
Когда я выбираю более одного узла и нажимаю на данные отправки, данные публикуются наsubmit_data.php.Когда я проверяю параметры записи на вкладке консоли через firebug, я получаю следующие данные.
comment test
rb1 foo
selNodes restaurant1
selNodes screen1
selNodes screen2
selNodes screen3
userName gaurav
Но print_r($_POST)
печатает следующие данные:
Array
(
[userName] => gaurav
[comment] => test
[rb1] => foo
[cb1] => John
[selNodes] => screen3
)
В идеале я должен получить всезначения selNodes.Но, насколько я понимаю, так как имя параметра одно и то же, то есть selNodes для всех узлов, поэтому я получаю только одно значение.
Как мне получить все значения?