我正在使用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
我无法弄清楚如何将名称和级别的每一行插入一个数据库行
你能帮我解决这个问题吗?
答案 0 :(得分:1)
不确定这对于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'
)
)
)
答案 1 :(得分:0)
您可以对输入字段使用[]
- 表示法。
我想你的所有技能都有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是你的技能的ids(例如),如果你使用数据库中的现有技能。 对于新创建的技能,您可以使用@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
}