У меня есть приложение CodeIgniter, где на странице просмотра я выпадаю из таблицы с именем department
.Вставить выбранное выпадающее значение одной таблицы в другую таблицу
Вот структура department
таблицы:
dept_id int(11) PK
dept_name varchar(10)
У меня есть следующие значения в department
таблице:
dept_id dept_name
1 EEE
2 CSE
3 ME
4 CE
5 ARCH
Значения dept_name населены в моем раскрывающемся списке.
мой взгляд файл student_view.php
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>My first site in CI</title>
</head>
<body>
<h2>Student Information</h2>
<form method="post" action="<?php echo base_url();?>index.php/student/insert_student_db">
<table width="800" border="0">
<th width="213" align="right" scope="row">Name:</th>
<td width="161"><input type="text" name="name" size="60" /></td>
</tr>
<tr>
<th align="right" scope="row">Roll:</th>
<td><input type="text" name="roll" size="60" /></td>
</tr>
<tr>
<th align="right" scope="row">Department:</th>
<td>
<select name="department">
<?php
$sql = mysql_query("SELECT dept_name FROM department");
while ($row = mysql_fetch_array($sql)){
echo "<option value=\"department1\">" . $row['dept_name'] . "</option>";
}
?>
</select>
</td>
</tr>
<tr>
<th align="right" scope="row">Email:</th>
<td><input type="text" name="email" size="60" /></td>
</tr>
<tr>
<th align="right" scope="row">Mobile:</th>
<td><input type="text" name="mobile" size="60" /></td>
</tr>
<tr>
<th align="right" scope="row"> </th>
<td><input type="submit" name="submit" value="Send" /></td>
</tr>
</table>
</form>
<table width="600" border="1" cellpadding="5">
<tr>
<th scope="col">Name</th>
<th scope="col">Roll</th>
<th scope="col">Department</th>
<th scope="col">Email</th>
<th scope="col">Mobile</th>
</tr>
<?php foreach ($student_list as $std_key){ ?>
<tr>
<td><?php echo $std_key->name; ?></td>
<td><?php echo $std_key->roll; ?></td>
<td><?php echo $std_key->department; ?></td>
<td><?php echo $std_key->email; ?></td>
<td><?php echo $std_key->mobile; ?></td>
</tr>
<?php }?>
</table>
</body>
</html>
Мой контроллер student.php
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Student extends CI_Controller
{
function __construct()
{
parent::__construct();
#$this->load->helper('url');
$this->load->model('student_model');
}
//Show all Students
public function index()
{
$data['student_list'] = $this->student_model->get_all_students();
$this->load->view('student_view', $data);
}
//Insert a student
public function insert_student_db()
{
$udata['name'] = $this->input->post('name');
$udata['roll'] = $this->input->post('roll');
$udata['department'] = $this->input->post('department');
$udata['email'] = $this->input->post('email');
$udata['mobile'] = $this->input->post('mobile');
$res = $this->student_model->insert_student($udata);
if($res)
{
header('location:'.base_url()."index.php/student/".$this->index());
}
}
}
?>
Моя модель student_model.php
<?php
class Student_model extends CI_Model
{
function __construct()
{
parent::__construct();
$this->load->database();
}
//To retrieve all students
public function get_all_students()
{
$query = $this->db->get('student');
return $query->result();
}
//To add a new student to the database
public function insert_student($data)
{
return $this->db->insert('student', $data);
}
}
?>
То, что я хочу сделать, это: Я хочу, чтобы вставить выбрано значение dept_name
в раскрывающемся списке моих страницу просмотра, в столбец department
другой таблицы с именем student
, который связан с моей моделью student_model.php
. Но значение, которое вставлено, представляет собой строку - «department», а не выпадающее значение. Что не так с моим кодом?
Вот структура моего student
стола:
name varchar(30)
roll varchar(10)
department varchar(10)
email varchar(50)
mobile varchar(15)
Отлично! Я получаю ожидаемый результат и могу успешно вставить значение 'dept_name' внутри' department'. Muchos Gracias Senor Arbiza за столь быстрое и точное решение. :) –
Ha sido un россыпи, estamos для servirle! :) –