Drupal 在视图(或块)中使用ajax在其他项目之上添加项目

Drupal 在视图(或块)中使用ajax在其他项目之上添加项目,drupal,drupal-6,drupal-views,Drupal,Drupal 6,Drupal Views,各位drupalers朋友好,我有一个关于ajax加载视图的问题。假设我有15项,我有传呼机显示5项。现在我想要一个显示“更多”的按钮。按下按钮时,我希望视图在视图中加载额外的5项。所以如果我有,让我们说动物。猫,狗,熊猫,蛇,蠕虫,斑马,狮子如果传呼机是在3它应该显示猫,狗,熊猫。在按下按钮时,它应该加载3个以上的项目,视图现在应该显示猫,狗,熊猫,蛇,蠕虫,斑马,如果我再次按下它应该显示整个列表。我不知道怎么做,也许有人能给我指出正确的方向?内容相当繁重,因此无法接受display none

各位drupalers朋友好,我有一个关于ajax加载视图的问题。假设我有15项,我有传呼机显示5项。现在我想要一个显示“更多”的按钮。按下按钮时,我希望视图在视图中加载额外的5项。所以如果我有,让我们说动物。猫,狗,熊猫,蛇,蠕虫,斑马,狮子如果传呼机是在3它应该显示猫,狗,熊猫。在按下按钮时,它应该加载3个以上的项目,视图现在应该显示猫,狗,熊猫,蛇,蠕虫,斑马,如果我再次按下它应该显示整个列表。我不知道怎么做,也许有人能给我指出正确的方向?内容相当繁重,因此无法接受display none解决方案和jquery。

自己进行ajax回调,但实际查询使用视图

在hook_menu()中设置ajax回调的URL,然后在回调中找出请求的“页面”,并在回调中以编程方式设置它&返回您所需的内容

function general_menu() {
    $item['callback/url'] = array(
        'type' => MENU_CALLBACK,
        'page callback' => 'my_ajax_callback',
        'access callback' => TRUE,
    );
}

function my_ajax_callback() {
    $page = $_REQUEST['page'] ? $_REQUEST['page'] : 0;
    $view = views_get_view('{view_name}');
    $view->set_display('{display_name}');
    $view->set_current_page($page);
    $view->pre_execute();
    $view->execute();
    print $view->render();
    exit;
}
您必须自己执行ajax请求并在客户端管理当前页面,但这并不难。此外,您可能需要覆盖某些视图模板文件,以便在请求更多项目时不会获得所有视图包装,而只获得项目本身。当ajax调用返回时,您可以将结果插入到DOM中其他项的下面