我如何通过控制器将发布数据从一个视图传递到另一个视图

问题描述 投票:0回答:2

当我单击view <td>时,我希望从表行中加载具有隐藏ID的新页面作为发布数据。这是来自管理员/合同的代码:

    $count = 0;
    foreach ($data as $row) {
      $id = $row->_id;
      ++$count;
     echo "<tr>
         "<input name='contract_id' id='contract_id' value='$id' hidden/>".
         "<td class=\"id_td td_content\">".$count."</td>".
         "<td class='serial_td td_content'>".$row->_id."</td>".
         "<td class='organisation_td td_content'>".$row->organisation."</td>".
         "<td class='contract_td td_content'>".$row->title."</td>".
         "<td class='lot_no_td td_content'>".$row->serial_no."</td>".
         "<td class='pub_date_td td_content'>".substr($row->pub_date, 0, 10)."</td>".
         "<td class='view_td'><a href='".site_url('Admin/contract_detail')."'>view</td>";
     echo "</tr>";
   }

这是来自管理控制器的代码:

    public function contract_detail(){
     $id = $this->input->post('contract_id');
     $result['id'] = $id;
     $this->load->view('admin/contract_detail', $result);
   }

以及admin / contract_detail视图中的代码:

    <?php
     echo "id = ". $id;
    ?>

问题是$id回显时不输出任何内容。我需要帮助;

php codeigniter post scope
2个回答
0
投票

这里的问题是您将用户重定向到contract_detail vie锚元素如果要将ID传递给contract_detail页面,则必须以表单形式发送,而不是链接[]

例如

将您的foreach更改为以下内容

 foreach ($data as $row) {
  $id = $row->_id;
  ++$count;
 echo "<tr><form action='".site_url('Admin/contract_detail')."' method='post'>
     "<input name='contract_id' id='contract_id' value='$id' hidden/>".
     "<td class=\"id_td td_content\">".$count."</td>".
     "<td class='serial_td td_content'>".$row->_id."</td>".
     "<td class='organisation_td td_content'>".$row->organisation."</td>".
     "<td class='contract_td td_content'>".$row->title."</td>".
     "<td class='lot_no_td td_content'>".$row->serial_no."</td>".
     "<td class='pub_date_td td_content'>".substr($row->pub_date, 0, 10)."</td>".
     "<td class='view_td'><button type='submit'>view</button></td>";
 echo "</form></tr>";

}


0
投票
"<input name='contract_id' id='contract_id' value='".$id."' hidden/>".
© www.soinside.com 2019 - 2024. All rights reserved.