2011-09-19 135 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 
}); 
相关问题