2012-03-08 15 views
0
$actions = array(
    'EDIT' => sprintf('<a href="admin-ajax.php?action=%s&subaction=%s&course_id=%d" class="%s" id="%s">Edit</a>', 
        'abf_cm', 
        'edit_course', 
        $item['course_id'], 
        'thickbox edit-box', 
        'edit_'.$item['course_id'] 
        ), 
    'DELETE' => sprintf('<a href="?page=%s&task=%s&action=%s&bookid=%s&noheader=true">Delete</a>','course_management','do_process','delete',$item['course_id']), 
); 

このようにすると、編集部分が表示されません。何か間違っています。 私はまた、プレースホルダPHP sprintfが正常に動作しない

'EDIT' => sprintf('<a href="admin-ajax.php?action=%1$s&subaction=%2$s&course_id=%4$d" class="%4$s" id="%5$s">Edit</a>', 
        'abf_cm', 
        'edit_course', 
        $item['course_id'], 
        'thickbox edit-box', 
        'edit_'.$item['course_id'] 
        ), 

が、まだ何もありませんを使用してみました。 以前のバージョンでclass属性とid属性を削除してもうまくいきました。

私はこのことについて満足のいく説明をして、どこに間違っているのか教えてください。

EDIT: まあ、その奇妙に言及するが、私は、単一の使用時にコードが動作します:

イム

function column_course_name($item) { 

    //Build row actions 
    $actions = array(
     'EDIT'  => sprintf('<a href="admin-ajax.php?action=%s&subaction=%s&course_id=%d" class="%s" id="%s">Edit</a>', 
         'abf_cm', 
         'edit_course', 
         $item['course_id'], 
         'thickbox edit-box', 
         'edit_'.$item['course_id'] 
         ), 
     'DELETE' => sprintf('<a href="?page=%s&task=%s&action=%s&bookid=%s&noheader=true">Delete</a>','book_management','do_process','delete',$item['course_id']), 
    ); 

    //Return the title contents 
    return sprintf('<a href="?page=book_management&action=viewnedit&bookid=%2$s">%1$s</a>%3$s', 
     /*$1%s*/ strlen($item['course_name'])>0?$item['course_name']:'<span style="color:silver">(No Name)</span>', 
     /*$2%s*/ $item['course_id'], 
     /*$3%s*/ $this->row_actions($actions) //row_actions is a method in this class 
    ); 
} 

更新WP_List_Tableクラスを使用してカスタムテーブルを作成するためのWordpressの内部でこれを使用してクラス(つまり、私はタグの2つのクラスの間のスペースを削除するとき)。

どのような考えですか?

+0

「表示されていません」?あなたのコードは何も表示しません。 –

+0

「表示されていません」とはどういう意味ですか?その 'sprintf'呼び出しは何を返しますか? – deceze

+0

あなたは完全に私のために動作します。 – FMCorz

答えて

0

Dipesh、おそらくコードにエラーがあります。このスニペット。

コードを個別にチェックしてみてください。私は少しセットアップを持つ独立した.PHPスクリプトにあなたのコードをコピーして、このように、print_rで配列を確認:私はコンソールからこのスクリプトを実行した

<?php 
$item = array(); 
$item['course_id'] = 1; 
$actions = array(
    'EDIT' => sprintf('<a href="admin-ajax.php?action=%s&subaction=%s&course_id=%d" class="%s" id="%s">Edit</a>', 
     'abf_cm', 
     'edit_course', 
     $item['course_id'], 
     'thickbox edit-box', 
     'edit_'.$item['course_id'] 
    ), 
    'DELETE' => sprintf('<a href="?page=%s&task=%s&action=%s&bookid=%s&noheader=true">Delete</a>','course_management','do_process','delete',$item['course_id']), 
); 

print_r($actions); 

edit_array.phpとなりました次の結果:

$ php edit_array.php 
Array 
(
    [EDIT] => <a href="admin-ajax.php?action=abf_cm&subaction=edit_course&course_id=1" class="thickbox edit-box" id="edit_1">Edit</a> 
    [DELETE] => <a href="?page=course_management&task=do_process&action=delete&bookid=1&noheader=true">Delete</a> 
) 
$actions['EDIT']ため

生成されたリンクは1が安全にあなたのコード自体は正常に動作していると結論づけることができるように、HTMLが有効である、とエラー李どこか他の人。

関連する問題