2016-10-20 2 views
0

제가 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"를 선택하여 프로젝트를 편집합니다. 그는 드롭 다운에서 프로젝트를 선택하고 버튼을 클릭합니다. startsite에서 다음 형태 :

<?php echo form_open('projekt/editProjekt', array('name' => 'preform')); ?> 
 
\t <div class="col-sm-6 col-md-6 col-lg-6"> 
 
\t \t <label for='projekt'>Projekt</label> 
 
\t \t <?php echo form_dropdown('projekt', $projekte, '', 'class="form-control" id="projekt"'); ?> 
 
\t </div> 
 
\t <div class="col-sm-6 col-md-4 col-lg-3"> 
 
\t \t <button type="submit" id="btladeProjekt" name="btladeProjekt" value="btladeProjekt" class="btn btn-primary headbutton"><i class="glyphicon glyphicon-pencil"></i> Projekt bearbeiten </button> 
 
\t </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 
 
\t \t \t \t \t \t \t if(isset($proDetails)){ 
 
\t \t \t \t \t \t \t \t echo "test"; 
 
\t \t \t \t \t \t \t \t echo "<input type='text' class='form-control' id='proname' name='proname' value='".$proDetails->ProjektID."'/>"; 
 
\t \t \t \t \t \t \t }else{ 
 
\t \t \t \t \t \t \t \t echo "<input type='text' class='form-control' id='proname' name='proname'>"; 
 
\t \t \t \t \t \t \t } 
 
\t \t \t \t \t \t ?>

내가 무엇을 그리워 않았다 ? Thx 사전에

+0

dnt가 ajax를 구현하는 이유는 무엇입니까? –

+0

그게 무슨 소리 니? 나는 codeigniter에서 컨트롤러와 모델을 함께 사용하는 것이 가장 좋습니다. 혼합 된 설정이 좋습니까? – JamesnxD

+0

'print_r ($ this-> projekt_model-> editprojekt())'을 표시하고 –

답변

0

좋아, 나는 당신이 @JamesnxD가 필요한 것을 이해했다고 생각한다. 보기에서 모든 드롭 다운을로드 할 수 있으며 다른보기의 편집 양식은 다음과 같이됩니다.

$this->load->view('front/dropdown'); 
$this->load->view('front/editform',$data); 
$this->load->view('front/front_footer'); 
+0

답장을 보내 주셔서 감사합니다.하지만 제 목표를 명확히하기 위해서입니다. 내보기에 모든 드롭 다운이로드 된 다음 사용자가 프로젝트 ID를 기반으로 데이터를로드하려고합니다. 데이터의 표현은 같은 시각에 있어야합니다. 아마 나는 대답을 이해하지 못한다. 그러나 내가 2 개의 다른보기를로드 할 때 나는 같은 시각에 있지 않느냐? – JamesnxD

0

일부 모델 기능을 변경하고 매개 변수를 추가하십시오.

function editprojekt($proID) { 
    $projektID = $proID 
} 

그리고 마지막으로 당신은 당신이 전화 내용을 편집 할 때 index 방법

public function index($proID = '') { 
    if($proID) { 
     $data['proDetails'] = $this->projekt_model->editprojekt($proID); 
    } else { 
     $data['proDetails'] = false; 
    } 
} 

을 변경 브라우저 URL에 projekt/index/12 (12 = projektID) 당신이 helper를로드하는 배열을 사용할 수 있다는 것을 알고

+0

변경 사항 없음. $ proDetails가 설정되지 않았기 때문입니다. – JamesnxD

+0

'$ data [ 'proDetails'] = $ this-> projekt_model-> editprojekt();를'index' 메소드에서 호출하여 –

+0

을 알려 주시면 작동합니다. 나는 모델에서 고정 id로 쿼리의 where 절을 변경했다고 말해야합니다. 왜냐하면 인덱스 메서드에서 ID를 제공하는 폼에 대한 제출이 없기 때문입니다. – JamesnxD

0

, modellibrary

$this->load->helper(array('html', 'url', 'form')); 
$this->load->model(array('projektklassen_model', 'kundengruppen_model', 'produktgruppen_model', 'ablehnungsgrund_model','absatzregion_model','anfragetyp_model','businessunit_model','endkundeOEM_model','lieferanten_model','prozentverteilungEOP_model','prozentverteilungSOP_model','realisierungsstatus_model','gsmbereich_model','firma_model','projekt_model')); 
관련 문제