私はノードのリストであるDrupalビューを持っています。 headセクションにJqueryのjavascriptを含むnode-type.tpl.phpがあります。任意のノードでリンクをクリックすると、クリックされたノードを参照する新しいajaxedビューが読み込まれます。私はajaxを使用して、元のノードをノード参照引数としてhook_menuパス経由で新しいビューをロードしています。残念ながら、このクリックは現在、クリックされたノードではなく、リストの最初のノードを参照するビューのみを読み込みます。どんなノードをクリックしても、リストの最初のノードを参照しているビューしか取得できません。私はJavaScriptが引数の正しいノードIDを送信していない理由を理解できません。以下はnode-type.tpl.phpのheadセクションのコードです。
<script>
Drupal.behaviors.myajax = function(context) {
$(".ajaxclick").click(function(){
<?php $mynid = $node->nid;?>
var mynodeid = <?php echo $mynid ?>;
$(".holder").load(Drupal.settings.basePath + "myajax/" + mynodeid);
});
}
</script>
ボディー内のコードです。
<a class="ajaxclick" href= "#">Click me</a>
<div class="holder"></div>
そして、ここでモジュール内のhook_menuコードです:
<?php
function ajaxview_menu() {
$items = array();
$items['myajax'] = array(
'title' => 'My Ajax',
'page callback' => 'ajaxview_myajax',
'description' => 'Ajax View',
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
return $items;
}
function ajaxview_myajax($nid) {
$node = node_load($nid);
print '<div class="rightcolumn">';
print $viewName = 'Comments';
$display_id = 'default';
$myArgs = $nid;
print views_embed_view($viewName, $display_id, $myArgs);
print '</div>';
exit();
}
誰もが各ノードに対して個別のノードIDを認識javascriptのjqueryのを作るためになぜか知っていますか?
もっと良い方法がありますか?