나는 내가 어떻게하고 있는지에 대해 많은 의견을 말할 것이다. 저는 파트 타임으로 MVC를 사용하여 새로운 시스템을 개발하려고합니다. 현재의 문제점은 다음과 같습니다. 폼 (뷰)을로드하면 컨트롤러가 내 모델 파일을 호출하여 뷰의 새 모델을 즉시 인스턴스화하고 MySQL db에서 이전 폼 값을 검색합니다. 보기에는 일련의 드롭 다운이 있습니다. 뷰에서와 같은 이름을 가진 모델 전용 변수에 db의 값을로드하지만 값은 뷰로 전달되지 않으므로 드롭 다운은 모두 기본값을 보여줍니다. 값을 표시해야합니다. db에 저장됩니다. 코드 아래, 그러나 다만 관련 조각 :PHP : 모델에서 선택 값을 가져 오지 못한다.
<?php
require_once("../controller/db_conn_ctlr.php");
class dom_leader_model {
// Variables
private $ldr1_rec; // leader 1 record
private $ldr1_role; // leader 1 role
private $ldr2_rec; // leader 2 record
private $ldr2_role; // leader 2 role
private $ldr3_rec; // leader 3 record
private $ldr3_role; // leader 3 role
private $ldr4_rec; // leader 3 record
private $ldr4_role; // leader 3 role
private $trail_no; // TRAIL # of plan
// constructor
public function __construct() {
$trail_no = $this->getTrailNumber();
$this->getOldLeaderInfo($trail_no);
}
// get TRAIL number
public function getTrailNumber() {
return $this->trail_no = $_SESSION['trail_no'];
}
// get leader info from database and put it on the form
public function getOldLeaderInfo($trail_no) {
$fiscal_yr = substr($trail_no, 0, 2);
$trip_id = substr ($trail_no, 2, 3);
$section_id = substr($trail_no, 5, 1);
$query20 = "
SELECT * FROM leader_info
WHERE fiscal_yr = '$fiscal_yr' AND trip_id = '$trip_id'
AND section_id = '$section_id'";
$connect = db_connection();
$result20 = mysqli_query($connect, $query20) or die("Query20 failed:
" . mysqli_error($connect));
$connect->close();
if($result20) {
$row = $result20->fetch_array(MYSQLI_ASSOC);
$this->ldr1_rec = $row['leader1_record'];
$this->ldr1_role = $row['leader1_role'];
$this->ldr2_rec = $row['leader2_record'];
$this->ldr2_role = $row['leader2_role'];
$this->ldr3_rec = $row['leader3_record'];
$this->ldr3_role = $row['leader3_role'];
$this->ldr4_rec = $row['leader4_record'];
$this->ldr4_role = $row['leader4_role'];
return 1;
} else {
return 0;
}
}
[from controller]
<?php
require_once '../model/dom_leader_model.php';
require_once '../utilities/check_info_saved.php';
$session_start = session_start();
$leaderInfoModel = new dom_leader_model();
$trail_no = $leaderInfoModel->getTrailNumber();
if (isset($_POST['save']) || isset($_POST['next'])) {
[from view]
<p>Leader 1 Information:</p>
<?php
if (empty($ldr1_rec)) {
$ldr1_switch = 'Select Leader';
echo '<select name="ldr1_rec"><option selected
value="">',$ldr1_switch,'</option>',
require("../../lists/leader_list.txt"),'</select>';
} else {
$ldr1_switch = leader_switch($ldr1_rec, 'dom');
echo '<select name="ldr1_rec"><option selected
value="',$ldr1_rec,'">',$ldr1_switch,'</option>',
require("../../lists/leader_list.txt"),'</select>';
}
if (empty($ldr1_role)) {
$role1 = "Select Role";
echo '<select name="ldr1_role"><option selected
value="">',$role1,'</option>',
require("../../lists/staff_role_list.txt"),'</select>';
} else {
$role1 = role_switch($ldr1_role);
echo '<select name="ldr1_role"><option selected
value="',$ldr1_role,'">',$role1,'</option>',
require("../../lists/staff_role_list.txt"), '</select> ';
}
?><p><hr>
내가 말했듯이, 나는이 파트 타임을하고 나는 코드를 작성하는 더 나은 방법을 볼 수 있습니다 당신의 많은 분들,하지만 내가 정말 찾고 있어요 것은입니다 왜 데이터베이스에서 검색 한 값이로드 될 때 양식에 도달하지 않는지에 대한 대답.
미리 감사드립니다.
존 C.
당신은selected="selected"
대신 사용해야합니다
모든 코드를 가져 오지는 않았지만 'select'->''? – OldPadawan
내 실수 ->''선택 ''대신에 ''선택 ''을 선택하십시오. – OldPadawan