【问题标题】:Getting value of a textbox and transfer to controller(Codeigniter)PHP获取文本框的值并传输到控制器(Codeigniter)PHP
【发布时间】:2018-08-22 05:44:31
【问题描述】:

当我将值从视图传输到控制器时出现问题。我没有得到价值 这是我的方法

清单.php

<?php foreach($voyage_info as $voyage) {  ?>

  <input type="hidden" name="voyage_id" value="<?=$voyage->voyage_id?>">
  <a class="btn btn-primary primary-bg btn-lg  col-md-2 m-3 btn-cus" href="<?php  echo base_url('PortClient/view_voyage/');?>">
  <h3>Voyage - <?=$voyage->voyage_number?></h3> 
  <small>Schedule - <?=$voyage->expected_arrival?> </small>
  </a>
<?php }  ?>

我想在 manifest.php(查看页面)中获取 voyage_id(上面的代码)的值并将其传输到控制器。 这是我的控制器

PortClient.php

public function view_voyage() {
    $this->Auth->authCheck();
    $data = $this->template();
    $voyage_id = $this->session->userdata('voyage_id');

    $data['view_cargo'] = $this->PortManifestModel->view_voyage($voyage_id)->result();
    // your code here
    $this->load->view("port/client/sub_manifest/sub_manifest_1", $data);
}

我将使用 $this->session->userdata() 调用它,但它不会传输。

我该怎么办?

【问题讨论】:

  • 不确定您要在这里做什么。 HTML 正在创建一个带有一些值的输入字段,然后是一个普通链接。您如何发送该输入文件?使用 javascript?此外,在您的 PostClient 文件中,您只是尝试从会话中获取 $voyage_id。你在哪里设置那个会话?会话和表单数据是两个完全不同的东西。

标签: php codeigniter


【解决方案1】:

您需要使用表单并访问表单提交上的值。或者您可以使用 AJAX 发布值并像这样访问它:$this-&gt;input-&gt;post("voyage_id") 而不是使用会话

【讨论】:

  • 你好。这就是我所做的。
  • 您的按钮位于 标记之外。请将其包含在表单中以允许提交
  • 仍然不工作的伙伴。我在模型中的查询仍然无法正常工作:(。我在模型中的查询 public function view_voyage($voyage_id){ $sql="SELECT * FROM port_voyage_cargo WHERE voyage_id = ?"; $data = array($voyage_id); return $this- >db->查询($sql,$data); }
  • 你能检查 $this->input->post('voyage_id'); 的值吗?在 view_voyage() 中并显示模型中的最后一个查询
【解决方案2】:

您正在使用会话来获取值。相反,您必须在提交表单后使用 POST 或 GET 方法(也可以使用表单)-

$voyage_id = $this-&gt;session-&gt;userdata('voyage_id');

这里是错误的。提交表单/使用 ajax 并使用 -

$voyage_id = $this-&gt;input-&gt;post('voyage_id');

其他选项是- 如果您将voyage_id 存储在一个函数中并且还向表单发送相同的值,那么您不需要在隐藏元素中设置它(确保这是您在表单提交后需要的确切voyage_id)然后删除html元素,你就可以实现你想要做的事情。

【讨论】:

  • 你好。这就是我所做的。
  • 您在表单标签外添加了提交按钮。请在表单标签内添加它
  • 仍然没有工作伙伴:(。我在模型公共函数 view_voyage($voyage_id){ $sql="SELECT * FROM port_voyage_cargo WHERE voyage_id = ?"; $data = array($voyage_id); 中的查询返回 $this->db->query($sql,$data); }
  • 看,你不必首先关注模型。如果 $voyage_id 具有正确的值或没有,请检查控制器。如果它永远不会在模型中可用。专注于在控制器中捕获价值,然后将其传递给模型。
猜你喜欢
相关资源
最近更新 更多
热门标签