【发布时间】:2016-10-20 06:57:30
【问题描述】:
我有一个小项目,我使用 codeigniter、jquery 和 bootstrap。
我有“Startsite”,用户必须说:
选项 1:编辑项目
选项 2:创建项目
我认为首先显示我的控制器很有用:
在构造方法中我加载所有模型,在索引中我将数据加载到我的“startsite”中的所有下拉列表中,在 saveProject 中我保存我创建的项目,我遇到问题的方法是 editProject。看这里:
class projekt extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->helper('html');
$this->load->helper('url');
$this->load->helper('form');
$this->load->model('projektklassen_model');
$this->load->model('kundengruppen_model');
$this->load->model('produktgruppen_model');
$this->load->model('ablehnungsgrund_model');
$this->load->model('absatzregion_model');
$this->load->model('anfragetyp_model');
$this->load->model('businessunit_model');
$this->load->model('endkundeOEM_model');
$this->load->model('lieferanten_model');
$this->load->model('prozentverteilungEOP_model');
$this->load->model('prozentverteilungSOP_model');
$this->load->model('realisierungsstatus_model');
$this->load->model('gsmbereich_model');
$this->load->model('firma_model');
$this->load->model('projekt_model');
}
public function index()
{
$data['projektklassen'] = $this->projektklassen_model->getProjektklassen();
$data['kundengruppen'] = $this->kundengruppen_model->getKundengruppen();
$data['produktgruppen'] = $this->produktgruppen_model->getProduktgruppen();
$data['ablehnungsgruende'] = $this->ablehnungsgrund_model->getAblehnungsgruende();
$data['absatzregionen'] = $this->absatzregion_model->getAbsatzregionen();
$data['anfragetypen'] = $this->anfragetyp_model->getAnfragetypen();
$data['businessunits'] = $this->businessunit_model->getBusinessunits();
$data['endkundenOEM'] = $this->endkundeOEM_model->getEndkundenOEM();
$data['lieferanten'] = $this->lieferanten_model->getLieferanten();
$data['prozentverteilungenEOP'] = $this->prozentverteilungEOP_model->getProzentverteilungenEOP();
$data['prozentverteilungenSOP'] = $this->prozentverteilungSOP_model->getProzentverteilungenSOP();
$data['realisierungsstati'] = $this->realisierungsstatus_model->getRealisierungsstatus();
$data['gsmbereiche'] = $this->gsmbereich_model->getGSMBereiche();
$data['firmen'] = $this->firma_model->getFirmen();
$data['projekte'] = $this->projekt_model->getProjekte();
$data['preFormVisible'] = true;
$this->load->view('project2', $data);
}
function saveProjekt(){
if($this->input->post('btGenerate')){
$pdm = $this->projekt_model->getPDM();
$this->projekt_model->addprojekt($pdm);
}
redirect('projekt');
}
function editProjekt(){
if($this->input->post('btladeProjekt')){
$data['proDetails'] = $this->projekt_model->editprojekt();
$data['preFormVisible'] = false;
$this->load->view('project2', $data);
}
redirect('projekt');
} }
应该发生什么? 用户在“startsite”上选择编辑项目。他在下拉列表中选择一个项目并单击一个按钮。 这里是起始站点的表单:
<?php echo form_open('projekt/editProjekt', array('name' => 'preform')); ?>
<div class="col-sm-6 col-md-6 col-lg-6">
<label for='projekt'>Projekt</label>
<?php echo form_dropdown('projekt', $projekte, '', 'class="form-control" id="projekt"'); ?>
</div>
<div class="col-sm-6 col-md-4 col-lg-3">
<button type="submit" id="btladeProjekt" name="btladeProjekt" value="btladeProjekt" class="btn btn-primary headbutton"><i class="glyphicon glyphicon-pencil"></i> Projekt bearbeiten </button>
</div>
<?php echo form_close(); ?>
现在控制器方法 editProject 调用模型中的一个方法。我给你看:
function editprojekt() {
$serverName = "de-sal-v-sql011";
$connectionInfo = array( "Database"=>"NB_Roll_Plan", "UID"=>"s-global_it-bit002", "PWD"=>"\$Ev1danzA\$");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$projektID = $this->input->post('projekt');
$data = array();
$tsql = "SELECT ProjektID, Projektname, KDGR, Kundenname, ProduktgruppeID, Projektklasse, MABVertrieb, GSMBereich, Ansprechpartner_kunde,ProjektanfrageNR_kunde,
Anfragedatum, Abgabedatum_angebot, PDM, übergeordnetePDM, Kommentar, Projektrisiken from Projekt WHERE ProjektID = ? ORDER BY Projektname ASC";
$var = array($projektID);
$query = sqlsrv_query($conn, $tsql, $var);
if($query != false){
while( $row = sqlsrv_fetch_array( $query, SQLSRV_FETCH_ASSOC) ) {
$data['ProjektID'] = $row['ProjektID'];
$data['Projektname'] = $row['Projektname'];
$data['KDGR'] = $row['KDGR'];
$data['Kundenname'] = $row['Kundenname'];
$data['ProduktgruppeID'] = $row['ProduktgruppeID'];
$data['Projektklasse'] = $row['Projektklasse'];
$data['MABVertrieb'] = $row['MABVertrieb'];
$data['GSMBereich'] = $row['GSMBereich'];
$data['Ansprechpartner_kunde'] = $row['Ansprechpartner_kunde'];
$data['ProjektanfrageNR_kunde'] = $row['ProjektanfrageNR_kunde'];
$data['Anfragedatum'] = $row['Anfragedatum'];
$data['Abgabedatum_angebot'] = $row['Abgabedatum_angebot'];
$data['PDM'] = $row['PDM'];
$data['übergeordnetePDM'] = $row['übergeordnetePDM'];
$data['Kommentar'] = $row['Kommentar'];
$data['Projektrisiken'] = $row['Projektrisiken'];
}
sqlsrv_free_stmt($query);
}else{
die( print_r( sqlsrv_errors(), true));
}
return $data;
}
现在我想在视图中显示返回的数据,但是当我尝试这个时没有任何反应。
<?php
if(isset($proDetails)){
echo "test";
echo "<input type='text' class='form-control' id='proname' name='proname' value='".$proDetails->ProjektID."'/>";
}else{
echo "<input type='text' class='form-control' id='proname' name='proname'>";
}
?>
我错过了什么?提前谢谢
【问题讨论】:
-
为什么不实现ajax?
-
你是什么意思?我认为在codeigniter中最好的做法是使用控制器和模型?混合设置好吗?
-
请
print_r($this->projekt_model->editprojekt())给我看 -
我在控制台中什么也看不到,当我在 index 方法中尝试 print_r("test") 时也是如此。将调用 index 方法,因为下拉列表已填充。但我无法向控制台写一些东西
-
请在
index方法中也调用$data['proDetails'] = $this->projekt_model->editprojekt();并让我知道
标签: php html codeigniter codeigniter-2 codeigniter-3