我正在使用MySQL
和PHP CodeIgniter
。
我想实现这样的东西:
---------------------------------------
Skill name: Photoshop | Skill level: 4
---------------------------------------
---------------------------------------
Skill name: CSS | Skill level: 3
---------------------------------------
---------------------------------------
Skill name: CorelDraw| Skill level: 4
---------------------------------------
我可以轻松地将其打印在一页中。但是我需要它以这样的形式出现:
---------------------------------------
Skill name: [input] | Skill level: [input]
---------------------------------------
---------------------------------------
Skill name: [input] | Skill level: [input]
---------------------------------------
---------------------------------------
Skill name: [input] | Skill level: [input]
---------------------------------------
我对技能表database
是这样的:
skill_id | user_id | skill_name | skill_level
我不知道如何将具有名称和级别的每行插入一个数据库行
你能帮我这个吗?
不确定这将如何与 CI 提供的任何形式/输入框架一起工作,但我通常会通过使用数组符号命名输入来做到这一点:
<label for="skill_0_name">Skill Name</label>
<input type="text" name="skill[0][name]" id="skill_0_name" />
<label for="skill_0_level">Skill Level</label>
<input type="text" name="skill[0][level]" id="skill_0_level" />
<label for="skill_1_name">Skill Name</label>
<input type="text" name="skill[1][name]" id="skill_1_name" />
<label for="skill_1_level">Skill Level</label>
<input type="text" name="skill[1][level]" id="skill_1_level" />
发布到 PHP 后,您会得到一个如下所示的数组 $_POST
:
array(
'skill' => array(
0 => array(
'name' => 'name value for index 0'
'level' => 'level value for index 0'
),
1 => array(
'name' => 'name value for index 1'
'level' => 'level value for index 1'
)
)
)
您可以对输入字段使用 []
-表示法。我想你所有的技能都有id,这些id skill_id
在数据库表中。因此,请尝试创建如下表单:
Skill name: <input type="text" name="skill[23]" /> | Skill level: <input type="text" name="skill_level[23]" />
Skill name: <input type="text" name="skill[25]" /> | Skill level: <input type="text" name="skill_level[25]" />
Skill name: <input type="text" name="skill[27]" /> | Skill level: <input type="text" name="skill_level[27]" />
在这里,23,25,27 是您的技能的 ID(例如),如果您使用数据库中的现有技能。对于新创建的技能,您可以使用@prodigitalson答案 0,1,2...索引。
接下来,您可以循环访问$_POST['skills']
foreach ($_POST['skill'] as $skill_id => $skill_name) {
$skill_level = $_POST[skill_level][$skill_id];
// do your insert here
}