将元素值传递给cakephp中的$ ajax->链接

时间:2010-06-04 16:53:04

标签: php cakephp prototypejs

我需要将元素的值传递给$ ajax->链接而不使用表单/提交结构。 (因为我有一组动态设置的可点击链接,通过它我可以触发操作)

我曾经在Ruby中使用Prototype javascript函数$ F这样做:

<%= link_to_remote "#{item.to_s}", 
     :url => { :action => :add_mpc }, 
     :with => "'category=' + $F('mpc_category')" -%>

但这似乎不适用于Cakephp:

<?php echo $ajax->link(substr($vehicle['vehicles']['year'], -2), 
      array('action' => 'add_mpc', 'category' => '$F("mpc_category")'),
      array('update' => 'results', 'position' => 'top')); ?>

PHP将$ F视为变量,而不是调用javascript。我对Javascript不是很熟悉,但还有另一种方法可以通过此链接将'mpc_category'输入元素的值传递给控制器​​吗?我一直在寻找几天,找不到任何处理这个特定问题的人。感谢您的帮助。

编辑:在php语句中修复语法。

2 个答案:

答案 0 :(得分:0)

还没有真正使用蛋糕,但我使用过铁轨。 js部分应该完全是一个字符串。可能是这样的:

<?php echo $ajax->link(substr($vehicle['vehicles']['year'], -2), 
  array('action' => 'add_mpc', 'category' => "$F('mpc_category')"),
  array('update' => 'results', 'position' => 'top')); ?>

我假设它将“$ key = $ value”添加到ajax链接中的params上。另请注意,您在第二行末尾错过了一个逗号。

答案 1 :(得分:0)

经过几天的努力,我得到的最好的就是:

<?php echo $ajax->link($year, 
   array( 'action' => 'add_row', 
        'category' => $category,  
         'product' => $product.$newpart, 
   array( 'update' => $summary['summary']['id']." ".$vehicle['vehicles'],
            'with' => "$('app_select').serialize()")); ?>

'with' => "$('app_select').serialize()"是从表单中获取值而不必提交表单的部分。

然而,我只需要一个表单元素,因此它不是理想的,因为它将整个序列化表单传递给控制器​​。

我仍然希望能够对任何元素执行此操作,无论它是否处于某种形式,但此方法似乎不会这样做。也许更熟悉原型的人可以对此有所了解。