2012-09-21 61 views
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遞增一行(將行添加到db),所以這實際上並不實際對我來說,在每一次刷新錨標籤執行

現在,如果我這樣做這個實現我n中的視圖(另一種方法):

<?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) 
      } 
     }); 

這看似完美的,即使我重新加載頁面時,富不叫,有人可以告訴我爲什麼錨標籤的行爲如此?我錯過了一些明顯的東西?

+0

你有這樣的腳本哪些調用文檔就緒或身體onload並執行標籤? – GBD

+0

yes @GBD我在腳本中準備好了文檔,但是沒有一個會導致對foo函數的調用,或者任何會導致在我的db中插入的函數,只有foo纔會執行 –

+0

@GBD,如果文檔中有腳本準備好導致插入數據庫,爲什麼它會停止,當我執行替代方法? –

回答

4

我想你錯過了剛剛在錨標籤的href屬性後面的部分。

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

試試這個。 我認爲它會好