CI 묻고 답하기

제목 post형식으로 값을 전달하고싶습니다.
글쓴이 hidev 작성시각 2015/02/16 22:08:08
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 22958   RSS
java,jsp를 했던지라 mvc패턴에 대해 알고는 있습니다. 이를 응용하여 만들어본것도 있구요

php를 배우고 ci프레임워크를 공부하고자 무엇인가 만들어보려고했는데
초반부터막혔습니다 ㅠㅠ

컨트롤러에서 뷰페이지를부르고 모델페이지를부르는데

뷰페이지에서 form태그를 이용하여 post방식으로 값을 전달하려고했습니다.(모델페이지로)
그래서 모델에서 값들을 가공하고 그걸다시 컨트롤러를통해 뷰에서 가공한 결과값을 
보여지게하고싶었는데.. 그냥 php방식 그대로 action에 모델페이지 주소를쓰면
모델페이지에서 $POST_['전달한값id'] 이러한식으로 받을수 있는지요.....(안되는거같아서 물어봅니다 ㅠㅠ)

그리고 어디서 보니까 form보단 ajax를쓰는게 좋다고했는데
어쨋든 ajax도 주소로 값을 보내야하니.....아휴 개념이 제대로 안잡혀있어서 혼동이옵니다.ㅠㅠ

알려주세요!
 다음글 파일업로드에 대해 질문드립니다. (1)
 이전글 우분투에 ci 설치가 안됩니다.. (3)

댓글

방문넷 / 2015/02/17 01:25:28 / 추천 0
http://codeigniter-kr.org/user_guide_2.1.0/libraries/form_validation.html

일단락 매뉴얼에 있는 form 검증 부분입니다.

코드 일단 살펴 보시면 대충 감이 오시리라 생각이 듭니다.

설명을 에메모호 하게 해주셨는데

모델페이지가 정확히 어디부분인지도 모르거니와 코드를 안보여주시니

답변드리기가 에메모호 하네요;

최선의 답변은 위에 링크를 달아드린게 일단은 최선의 답변입니다!

$POST_['전달한값ID'] 가아닌 $_POST['전달한값ID'] 가 맞지않을까요 ^^

코드이그나이터에서는 

$this->input->post('전달한값ID'); 형식으로 받을수있습니다 참고하세요!!
 
ci세상 / 2015/02/17 06:14:14 / 추천 0
m / c에서 post찍을수 있습니다. 

v
 
<html>
<head>
<title>My Form</title>
</head>
<body>

<?php echo validation_errors(); ?>

<?php echo form_open('/board/write'); ?>

<h5>Username</h5>
<input type="text" name="username" value="" size="50" />

<h5>Password</h5>
<input type="text" name="password" value="" size="50" />

<h5>Password Confirm</h5>
<input type="text" name="passconf" value="" size="50" />

<h5>Email Address</h5>
<input type="text" name="email" value="" size="50" />

<div><input type="submit" value="Submit" /></div>

</form>

</body>
</html>
c
 
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Board extends CI_Controller {

 public function write()
 {
  $this->load->model('Board_model');
  $this->Board_model->data_form();
  exit;
 }
}
m
 
<?php
class Board_model extends CI_Model {


    function __construct()
    {
        // Call the Model constructor
        parent::__construct();
    }
    
    function data_form()
    {
  echo "<pre>";
  print_r($_POST);
    }
}
결과

Array
(
    [username] => name
    [password] => 1111
    [passconf] => 1111
    [email] => test@cikorea.net
)


form 보다 jquery > jquery 보다 앵귤러를 쓰면 코딩이 많이 줄긴 하는것 같습니다.


최근 플젝중 스프링 , asp.net mvc5로 해보아도 ci만한것이 없어 보입니다.^^
좌측에 ci책자 구매해서 보시면 큰 도움 되실것 같습니다.
한대승(불의회상) / 2015/02/17 10:36:04 / 추천 0
혹시나 해서 남깁니다.
<input type="text" name="email" id="id_email>
html이 위와 같을때 id속성에 지정된 값을 사용 하시면 값이 안나옵니다.
$email = $this->input->post('id_email'); // (X)
name 속성에 지정된 값을 사용하세요.
$email = $this->input->post('email'); // (O)
변종원(웅파) / 2015/02/17 14:44:22 / 추천 0
뷰에서 모델에 직접 값을 전달할 수 없습니다. 전달해서도 안되구요.

컨트롤러->뷰->컨트롤러->모델의 순서로 전달됩니다.