Así que estoy tratando de hacer jsTree desde la base de datos sql a través de php. He visto muchos ejemplos, y lo que tengo en este momento. Este es mi código php:
case 'create_node': $node = isset($_GET['id']) && $_GET['id'] !== '#' ? (int)$_GET['id'] : 0; $nodeText = isset($_GET['text']) && $_GET['text'] !== '' ? $_GET['text'] : ''; $statement = $pdo->prepare("INSERT INTO table(id, name, text, parent_id) VALUES (DEFAULT, ?, ?, ?)"); $statement->execute(array($nodeText, $nodeText, $node)); $last_id = $statement->fetchColumn(); //use because PostgreSQL $result = array('id' => $last_id); break; echo json_encode($result); // output is {id:23} etcY esto es parte del código JS:
$(document).ready(function () { $('#tree-container').jstree({ 'plugins': ['contextmenu', 'dnd', 'wholerow'], 'core': { 'data': { 'url': 'response.php?operation=get_node', 'data': function (node) { return { 'id': node.id }; }, "dataType" : "json" }, 'check_callback': true, 'themes': { 'responsive': false } } }).on('create_node.jstree', function (e, data) { $.get('response.php?operation=create_node', { 'id': data.node.parent, 'position': data.position, 'text': data.node.text }) .done(function (d) { data.instance.set_id(data.node, d.id); }) .fail(function () { data.instance.refresh(); });Entonces, al final de la operación, tendré este mensaje de error: TypeError: id no está definido (en el parámetro de función set_id en jstree.js)
Mi árbol está funcionando, pero después de agregar un nuevo nodo, necesito actualizar la página para editar el texto en este nodo (quiero crear y cambiar el nombre con una operación como en el ejemplo en el sitio de la biblioteca). Gracias por ayudar...