使用codeigniter处理多个输入字段?

时间:2012-10-04 19:50:25

标签: php codeigniter input

我遇到的问题是我的电子商务脚本允许人们将商品添加到商店。但是,这些产品可以有变体......比如颜色,这些变体可以有选项,例如黑色,白色和蓝色。我遇到的问题是我究竟如何确定他们输入了多少选项。最后我会有一个javascript函数添加一个新的输入字段,如果他们点击“添加选项”但是现在我只做了3个输入字段:

Variant Title:<input type="text" name="variant_title"><br>
Variant Option: <input type="text" name="variant_option_1"><br>
Variant Option: <input type="text" name="variant_option_2"><br>
Variant Option: <input type="text" name="variant_option_3"><br>

现在我不知道该怎么做是循环遍历所有variant_options,如果它们不是空的,则将它们添加到数据库中。我不想用名字硬编码,因为我不知道他们会为每个变体选择多少选项。

我试过这样做:

$i = 1;
            while($this->input->post('variant_option_$i') != '')
            {
                $variant_options[] = $this->post->input('variant_option_$i');
                $i++;
            }

但这似乎不起作用,因为变体标题被添加到数据库中,但选项不会。

我唯一需要解决的问题是如何实时抓取这些字段。我在考虑一个foreach循环,但我不确定。

谢谢。

1 个答案:

答案 0 :(得分:2)

我会使用输入字段数组:

Variant Title:<input type="text" name="variant_title"><br>
Variant Option: <input type="text" name="variant_option[]"><br>
Variant Option: <input type="text" name="variant_option[]"><br>
Variant Option: <input type="text" name="variant_option[]"><br>

然后检查以下值:

if (is_array($this->input->post('variant_option')):
   foreach ($this->input->post('variant_option') as $value):
       $variant_options[] = $value; // loop through...
   endforeach;
endif;