2011-09-19 182 views
1

我有一個窗體的視圖。我有一個通過Ajax調用控制器的按鈕。從視圖Yii控制器調用?

echo CHtml::submitButton('Generate', array(
     'ajax'  => array(
      'type' => 'POST', 
      'url'  => CController::createUrl('Calculator/generateRetailers'), 
      'update' => '#div_retailers' 
     ) 
    )); 

動作控制它的作用是從MySQL的一些數據,然後的RenderPartial HTML表格收集到我的形式。確切地在div#div_retailers。這是創建選項。現在我試圖執行更新操作,該操作應該呈現create操作中提供的信息並繪製表格。

我希望能夠從我的角度調用generateRetailers動作控制器。像這樣:

<div id="div_retailers"> 
</div> 

<script type="text/javascript"> 
    // I would like to call a url using jQuery? 
    $.ajax({ 
     url: "/Calculator/generateRetailers" 
    }); 
</script> 

我該如何做到這一點?

謝謝

+0

我真的不明白你的問題/問題 - 你似乎是展示如何從呼叫控制器動作查看(通過Ajax)。你能澄清嗎? – ldg

+0

@ldg是的!正是我想通過Ajax從視圖中調用控制器。但是從沒有按鈕或鏈接的原始JavaScript或任何HTML對象。可能嗎? – ivantxo

回答

1

你已經做的插件的完全一樣的東西:

<script type="text/javascript"> 
    // I would like to call a url using jQuery? 
    $.ajax({ 
    url: "<?php echo CController::createUrl('Calculator/generateRetailers');?>" 
    }); 
</script> 
+0

現在在撥打電話之前我需要調用另一個JavaScript函數。如果我在$ .ajax之前調用JavaScript,那麼控制器不會被調用。我怎樣才能做到這一點?謝謝 – ivantxo

+0

@ ivan.freire:取決於你在調用什麼功能,如何調用它,如果它導致錯誤等。無論如何,這聽起來像是一個不同的問題。 – Jon

+0

對不起,這是另一個問題。對不起,我有一個JavaScript錯誤,數組中的索引錯誤。無論如何,你的解決方案爲我工作。謝謝。 – ivantxo

0

有趣的是,沒有內置的阿賈克斯網址生成器。所以即時通過我的yii應用程序生成的助手變量調用ajax。 我使用Yii::app()->clientScript("config.url = ".Yii::app()->createUrl() . "); 然後在純JavaScript中我可以使用全局變量配置,我已經生成了網址。

$.ajax({ 
url: config.url 
}); 
相關問題