Встраивание формы в частичное с оператором foreach - PullRequest
0 голосов
/ 05 января 2012

Цель: перечислить набор записей с флажком рядом с каждой, а также «удалить» ввод. Если пользователь установит один или несколько флажков, действие отправки получит идентификатор каждого флажка и удалит соответствующие записи.

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

Обновление: теперь я могу корректно отображать виджет, но все еще не могу захватить идентификатор выбранных флажков. Помощь здесь будет оценена.

Страница указателя:

<h1>Jobs</h1>
<?php include_partial('list', array('saved_jobss' => $saved_jobss, 'form' => $form)) ?>
//I'm not sure if I can even pass two objects??  

Индекс действия:

  public function executeIndex(sfWebRequest $request)
  {
     $userId = sfContext::getInstance()->getUser()->getId();
     $this->saved_jobss = Doctrine_Core::getTable('saved_jobs')->getSavedJobs($userId);    
     $this->form = new Saved_JobsForm();
  }

Частичная страница с именем: _list

<table class="sortable">
  <thead>
    <tr>
      <th>Delete</th>
      <th>Company:</th>
      <th>Job name:</th>
      <th>Job No.</th>
      <th>Saved:</th>
    </tr>
  </thead>
  <tbody>    
    <?php foreach ($saved_jobss as $saved_jobs): ?>      
    <tr>
      <td> 
          <?php echo $form['id']->renderRow() ?>
      <td>
           <a href="
               <?php 
                   $jobId = $saved_jobs->getJobId();                
                   echo 'job/'.$saved_jobs->getJob($jobId);
               ?>
           ">
               <?php 
                   $jobId = $saved_jobs->getJobId();
                   echo $saved_jobs->getJobCompany($jobId);
               ?>
           </a>
      </td>
      <td>
               <?php 
                   $jobId = $saved_jobs->getJobId();
                   echo $saved_jobs->getJobName($jobId);
               ?>
      </td>
      <td>
               <?php 
                   echo $saved_jobs->getJobId();
               ?>
      </td>
      <td><?php echo date("M-j-y", strtotime($saved_jobs->getCreatedAt())) ?></td>
    </tr>
    <?php endforeach; ?>
  </tbody>
</table>
<input type="submit" value="Delete" />
</form>

Действие:

  public function executeSubmit(sfWebRequest $request)
  {
      $this->forward404Unless($request->isMethod('post'));
      $params = $request->getPostParameters();                   
      $this->redirect('saved_jobs/deleteConfirmation?'.http_build_query($params));       
  }

Форма класса:

class Saved_JobsForm extends BaseSaved_JobsForm
{
  public function configure()
  {
      $this->widgetSchema['id'] = new sfWidgetFormInputCheckbox();          
      $this->widgetSchema->setLabel('id', false); 
  }
}

Я возился с идеей использования javascript, но не был уверен, стоит ли идти этим путем или нет. Любая помощь, или точка в правильном направлении, будет наиболее ценной. Заранее спасибо.

1 Ответ

0 голосов
/ 13 июля 2012

Решено: Я просто передал ссылку на каждую запись с действием и идентификатором записи.

...