在选择选择框时,从表格(视图)中的文本框中检索值到codeigniter php中的控制器

时间:2011-07-26 05:47:23

标签: php codeigniter

查看页面代码

<td align="left" valign="middle" bgcolor="#FFFFFF" class="rows">
    <input type="text" name="Quantity" id="Quantity" value="<?= $row->Quantity ?>" />

控制器代码

$category    = $this->input->post('Category');
$num         = $this->input->post('numOflimit');
$productName = $this->input->post('product_name');
$barcode     = $this->input->post('barcode');
$quantity    = $this->input->post('Quantity');

for ($x = 1; $x <= $num; $x++) {
    $userArray = $_POST["select$x"];
}

$userArray   = split(',', $userArray);
$productName = $userArray[0];
$barcode     = $userArray[1];
$quantity    = $userArray[2];
$flag        = $this->cartmodel->getProductNames($category);

print_r($flag);

代码中的问题是它只能获取最后一个文本框值和

的输出
  

$ userArray它将作为数组

$flag = CI_DB_mysql_result Object (
    [conn_id]       => Resource id #27 
    [result_id]     => Resource id #36 
    [result_array]  => Array ( ) 
    [result_object] => Array ( ) 
    [current_row]   => 0 
    [num_rows]      => 0
)

代码有什么问题???

2 个答案:

答案 0 :(得分:0)

你缺少[],这意味着你没有创建一个数组,只是写了相同的值。尝试类似:

for ($x = 1; $x <= $num; $x++) {
    $userArray[] = $this->input->post("select" . $x . "");
}

确保您只获得了您可能想要的实际值:

for ($x = 1; $x <= $num; $x++) {
    if ($this->input->post("select" . $x . "")) {
        $userArray[] = $this->input->post("select" . $x . "");
    }
}

答案 1 :(得分:0)

您可以显示您的视图文件代码,选择标记是否存在(因为在上面的视图部分中,您只包含文本框,而不是选择框)。我猜你错过了在select标签中添加“multiple”。