Проблема Symfony с jq_link_to_remote - PullRequest
0 голосов
/ 26 апреля 2010

Hy,

Я использую функцию jq_link_to_remote, чтобы загрузить в div форму для ответов на комментарии (как в Facebook). Моя проблема в том, что я называю эту форму как «social / response / id / 14», где id содержит мнение родителей. Я создаю функцию, которая устанавливает значение в скрытом поле в моей форме.

Тогда, почему, если я пытаюсь вызвать напрямую «social / response / id / 14», он правильно присваивает значение, а когда я делаю это с вызовом jq_link - нет? Я делаю 'эхо' значения, переданного в качестве входных данных в функцию, чем заданное значение поля, и он работает нормально.

Спасибо.

Код формы ..

public function setDefaultEntityId($id_response=0)
  {
   if($id_response!=0){
     $this->setDefault('sf_opinion_id',$id_response);   
   }
   $this->configure();
  } 

шаблонное мнение

<?php echo jq_link_to_remote('opinar', 
                 array(
                        'update' => 'respuesta_hidden_'.$opinion->getId(), 
                         'url'  => 'social/responder?id_response='.$opinion->getId()),array('rel' => 'nofollow','class' =>'mini')

); ?>

ответчик действия

$this->form = new OpinionResForm();

$this->form->setDefaultEntityId($request->getParameter('id_response'));

// formulario opiniones
if($request->isMethod(sfRequest::POST))
{
    $this->form->bind($request->getParameter($this->form->getName()));
    if ($this->form->isValid()) {
    $opinion = $this->form->save();  
    }
}

И, наконец, пример сгенерированного кода ...

<a onclick="jQuery.ajax({type:'POST',dataType:'html',success:function(data, textStatus){jQuery('#respuesta_hidden_1').html(data);},url:'/sfproject/zampalo/web/frontend_dev.php/social/responder/id_response/1'}); return false;" href="#" class="mini" rel="nofollow">opinar</a>

Надеюсь, это поможет ...:)

1 Ответ

0 голосов
/ 28 апреля 2010

Хм, выглядит чисто - я не уверен, в чем проблема. Однако я не уверен, почему вы делаете это в форме:

if($id!=0){
  $this->setDefault('id_elemento',$id);
}
if($id_response!=0){
  $this->setDefault('id_elemento',$id_response); 
}

вы устанавливаете значение по умолчанию для id_elemento дважды - если $ id и $ id_response не равны 0, тогда для id_elemento сначала устанавливается значение $ id, а затем $ id_response ..., что звучит неправильно.

...