Symfony1 使用foreach语句将表单嵌入到分部中

Symfony1 使用foreach语句将表单嵌入到分部中,symfony1,symfony-1.4,Symfony1,Symfony 1.4,目标: 列出一组记录,每个记录旁边都有一个复选框以及一个“删除”输入。如果用户选中一个或多个复选框,提交操作将获取每个复选框的id并删除相应的记录 我知道此功能是在后端提供的,但我正在尝试向登录的前端用户提供此功能 更新:我现在可以正确呈现小部件,但仍然难以捕获选中复选框的ID。在此帮忙将不胜感激 索引页: <h1>Jobs</h1> <?php include_partial('list', array('saved_jobss' => $saved_job

目标: 列出一组记录,每个记录旁边都有一个复选框以及一个“删除”输入。如果用户选中一个或多个复选框,提交操作将获取每个复选框的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??  
部分页面名为:\u列表

<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>
表格类别:

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

我尝试了使用javascript的想法,但不确定这是否是一种方法。任何帮助,或正确方向上的一点,都将不胜感激。提前感谢。

解决:我刚刚传递了一个指向每个记录的链接,其中包含操作和记录Id。

首先,您可以根据需要将任意多个对象传递给一个分部。好的,让小部件正常工作,现在,我很难捕获列表中已检查记录的id以传递给我的参数字符串。为什么要使用此已保存的作业表单?您应该列出您的作业并创建一个删除操作。如果你担心CSRF,你有一个很好的方法($request->checkCSRFProtection())来再次检查它,这就足够了。好吧,如果我按照你建议的方式来做的话,我仍然会遇到和现在一样的困难,通过复选框值捕获列出的记录ID(这可能是正确的方法)。但是,与其从头开始,不如学习如何从选中的复选框中捕获记录id。不能多次呈现小部件!
  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); 
  }
}