我想用javascript从同一个站点创建一个drupal节点,我想知道我应该朝哪个方向走。
我知道您可以使用services/json来完成此任务,但肯定还有更简单的方法?
谢谢
发布于 2009-06-07 07:30:11
除了AJAX回调之外,您可能还需要在Drupal中有一个接受AJAX请求并将其转换为节点对象并用node_save保存它的menu callback。
在它最简单的形式中,它看起来像这样(注意这里没有访问检查,所以任何人都可以使用这个回调创建一个节点):
<?php
/**
* Implementation of hook_menu().
*/
function demo_menu() {
$items = array();
$items['demo/js'] = array(
'title' => 'Demo page',
'page callback' => 'demo_js_page',
'access callback' => TRUE,
'type' => MENU_CALLBACK,
);
return $items;
}
/**
* Page callback that saves a node.
*/
function demo_js_page() {
if (isset($_REQUEST['title'])) {
$node = new stdClass;
$node->type = 'blog';
$node->title = check_plain($_REQUEST['title']);
node_save($node);
drupal_set_message(t('Created node %title', array('%title' => $_REQUEST['title'])));
}
return t('Thanks for visiting');
}所显示的代码来自于要插入到您的Drupal站点上的sites/all/modules/demo文件夹中的demo.module文件中。您还需要一个类似如下所示的demo.info文件:
name = Demo module
description = Demo code.
core = 6.x发布于 2009-06-06 23:11:15
我首先要看的地方是这里:
http://docs.jquery.com/Ajax
并首先转到load()函数
http://docs.jquery.com/Ajax/load#urldatacallback
看看这是否足以满足您的需求。
从您可能需要的最简单的Ajax调用开始,很容易陷入更通用的$.ajax()的复杂性。
https://stackoverflow.com/questions/960343
复制相似问题