Передайте значение элемента в ссылку $ ajax-> в cakephp - PullRequest
0 голосов
/ 04 июня 2010

Мне нужно передать значение элемента в ссылку $ ajax-> без использования структуры form / submit. (потому что у меня есть динамически установленное количество кликабельных ссылок, через которые я запускаю действие)

Раньше я делал это в Ruby, используя функцию Javascript Prototype $ 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 голосов
/ 09 июня 2010

После работы над этим в течение пары дней лучшее, что я придумал, это:

<?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()" - это часть, которая извлекает значения из формы без необходимости отправки формы.

Однако мне понадобился только один из элементов формы, так что это не идеально, поскольку он передает всю сериализованную форму контроллеру.

Я все еще хотел бы иметь возможность делать это с любым элементом, независимо от того, находится он в форме или нет, но этот метод, похоже, этого не делает. Возможно, кто-то, более знакомый с прототипом, мог бы пролить свет на это.

0 голосов
/ 04 июня 2010

на самом деле не использовал торт, но я использовал рельсы. Часть 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. Также обратите внимание, что вы пропустили запятую в конце второй строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...