使用foreach语句将表单嵌入到partial中

时间:2012-01-05 16:09:40

标签: symfony1 symfony-1.4

目标: 列出一组记录,每个记录旁边都有一个复选框以及“删除”输入。如果用户选中一个复选框或多个复选框,则提交操作将获取每个复选框的ID并删除相应的记录。

我知道后端提供了此功能,但我正在尝试为登录的前端用户提供功能。

更新:我现在可以正确渲染窗口小部件,但仍然难以捕获所选复选框的ID。这里的帮助将不胜感激。

索引页:

<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 :(得分:0)

解决:我刚刚通过操作和记录ID传递了每个记录的链接。