이에 주어진 양식의 예에서 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>
태그 내부 :
<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에서 ve
노드를 두 개 이상 선택하고 데이터 보내기를 클릭하면 데이터가 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가 동일하므로 하나의 값만 표시됩니다.
어떻게 모든 값을 얻을 수 있습니까?
PHP에 대해 많이 알지는 않지만 하나 이상의 확인란을 선택할 때 같은 문제가있는 경우 ('cb1'), 그것은 dynatree에 문제가되지 않습니다. 어쩌면 당신은 $ HTTP_POST_VARS [ "selNodes"] (그냥 몇몇 Google 결과에서 추측)을 시도해야합니까? – mar10
$ HTTP_POST_VARS은 (는) 사용되지 않는 것으로 보입니다. $ _POST는 – mar10