반응형

module_CRUD.zip
0.04MB

안녕하세요. John Computer 입니다.

매번 페이지 / 메소드 마다 칼럼명과 데이터를 집어넣어서 만드는 번거러움을 없애기 위해서

동적으로 칼럼의 갯수와 상관없이 삽입 수정 삭제가 가능하게 쿼리문을 작성해 놨습니다.

사용법 또한 간단하니 다운받으셔서 이용하세요

 

사용법

1.  input을 생성하여 insert_col = DB칼럼명 / insert_param = DB에 들어갈 데이터값 을 넣는공간을 만들어주세요.

2.  insert_col의 경우 칼럼명을 보여질 필요가 없기 때문에 hidden으로 처리해주시면 됩니다.

3.  ajax에 insert_page.php 경로를 url에 설정 해주시고 colunm / insert_param 과 같은 변수명은 그대로 작동하게 두고 TABLE 명만 바꿔 주시면 됩니다.

 

## 한 화면에 여러 FORM이 존재 할 경우 FORM을 지정하는 선택자를 넣어주세요.

## 테이블명 이외에 바꿀내용은 없습니다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<!DOCTYPE html>
<html lang="en">
 
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
 
<body>
 
  사번 : <input type="text" id="inputemp" class="form-control" name="insert_param">
  <input type="hidden" name="insert_col" value="emp_num" />
 
  이름 : <input type="text" id="inputname" class="form-control" name="insert_param">
  <input type="hidden" name="insert_col" value="name" />
 
  <input type="button" name="" value="등록" onclick="insert_event()" />
  <script src="./jquery.min.js"></script>
 
  <script>
    //입력 클릭시 insert해주는 php 로 데이터 전송하는 함수
    function insert_event() {
      var column_array = $("input[name=insert_col]").length//hidden 되어있는 input 갯수
      //배열 생성
      var column = new Array(column_array); //컬럼 배열선언
      //배열에 값 주입
      for (var i = 0; i < column_array; i++) {
        column[i] = $("input[name=insert_col]").eq(i).val();
      }
      var insert_param_array = $("input[name=insert_param]").length//input type text 개수.
      //배열 생성
      var insert_param = new Array(insert_param_array); //파라미터 배열선언
      //배열에 값 삽입
      for (var i = 0; i < insert_param_array; i++) {
        insert_param[i] = $("input[name=insert_param]").eq(i).val();
      }
      $.ajax({
        type: 'post',
        url: './forms/insert_page.php',
        async: false// 전역변수 설정 변수
        data: {
          url: url,
          column: column, //컬럼
          param: insert_param, //params
          TABLENAME: 'dbo.employee'//테이블명
        },
        success: function(data) {
          alert("입력되었습니다.");
          location.reload();
        },
        error: function(request, status, error) {}
      });
    }
  </script>
</body>
</html>
 
cs

insert Page 입니다. 여기소스를 참고하여 직접 input을 만들어 주세요.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<!--
===============================================================================
          insert 모듈
          // INSERT into xxx => SQL
          // VALUES ( yyy )        => SQL2
          // sum_sql = SQL + SQL2
-->
<?php
  include "데이터베이스 설정 경로";
  // DB를 입력하실 분은 DB Con 등 여러 설정을 넣어주세요.
 
  $TABLENAME = $_POST["TABLENAME"]; // 테이블명 가져오기
  $column = $_POST["column"]; // 칼럼명 가져오기
  $param = $_POST["param"]; // 파람값 가져오기
 
  $select_obj_length = count($column);    //컬럼수
  $a_length = count($param);    //value 수
 
  $sql = "INSERT into $TABLENAME";
  $sql2 = " VALUES (";
  $params = array();
  $sql .= "(";
 
  for ($i=0$i < $select_obj_length ; $i++) {
    if($i == $select_obj_length-1){
     $sql .= $column[$i];
     $sql2 .="?";
     break;
    }
    $sql .= $column[$i].",";
    $sql2 .="?,";
  }
 
  for ($j=0$j < $a_length$j++) {
    array_push($params,$param[$j]);
  }
 
  $sql .= ")";
  $sql2 .= ")";
 
  print_r($sql.$sql2);
  print_r($column);
  $sum_sql = $sql.$sql2;
 
  // $params = array(&$column[0], &$column[1], &$column[2]);
  print_r($param);
  sqlsrv_query($con$sum_sql$params);  // $sql 에 저장된 명령 실행
  sqlsrv_close($con);
?>
 
cs

 

insert_page를 이용하여 자동으로 쿼리문을 생성하여 줍니다.

 

나머지 수정 삭제도 첨부파일로 올리니 ajax -> data의 내용을 읽어보시고 본인 프로그램에 맞게 이용해 주시면 됩니다.

반응형