1

私の見解では、これをやっています:

<?php if($user_can_write) {?>
<a href=<?php echo base_url('backend_controllers/users/foo')?> style="text-decoration:none">
Add</a>
<?php } ?>

アクセス制御の実装であるコントローラーから変数 $user_can_write を渡します。奇妙な部分は、このページ、つまりこのビューを更新するたびに、アンカータグが実行されることです。つまり、ユーザーコントローラーの foo 関数が呼び出されて実行されます。毎回!基本的に、foo関数はdbを1行ずつ増やします(dbに行を追加します)ので、更新のたびにアンカータグが実行されることは私にとって実際的ではありません

ビューでこの実装を行うと(代替アプローチ):

<?php if($user_can_write) {?>
<a href='javascript:void(0);' onclick="on_click_method_for_anchor()" style="text-decoration:none">
Add</a>
<?php } ?>

さらに、私のjavascriptでこれを行います:

function on_click_method_for_anchor(){
$.ajax({
            url: '<?php echo base_url('backend_controllers/user/foo'); ?>',            
            type: 'POST',
            success: function(result){                
                $('.my_span_tag_class').html(result)
            }
        });

これは完璧に機能しているようで、ページをリロードしてもfooは呼び出されません。アンカータグがこのように動作する理由を誰か教えてください。私は明らかな何かを見逃していますか?

4

1 に答える 1

4

アンカータグのhrefプロパティの直後の「」の部分を見逃していると思います。

<?php if($user_can_write) {?>
<a href="<?php echo base_url('backend_controllers/users/foo')?>" style="text-decoration:none">
Add</a>
<?php } ?>

これを試して。大丈夫だと思います

于 2012-09-24T12:13:04.967 に答える