2016년 2월 11일 목요일

라라벨 - 데이터베이스 마이그레이션

데이터 베이스를 만들자 (migration)


1. php artisan make:migration create_posts_table





2. 테이블 스키마 작성

class CreatePostsTable extends Migration
{
    public function up()
    {
        Schema::create('posts', function($table) {
            $table->increments('id'); // id INT AUTO_INCREMENT PRIMARY KEY
            $table->string('title', 100); // title VARCHAR(100)
            $table->text('body'); // body TEXT
            $table->timestamps(); // created_at TIMESTAMP, updated_at TIMESTAMP
        });
    }

    public function down()
    {
        Schema::dropIfExists('posts'); // DROP TABLE posts
    }
}

3. php artisan migrate








2016년 2월 10일 수요일

classic asp select case 문법 활용


<%
 'classic asp select case statement 
 ' 보기싫은 or절 개선 가능
 function exp1()
  exp1 = ""
 end function

 function exp2()
  exp2 = false
 end function

 function exp3()
  exp3 = true
 end function

 select case true 
  case exp1(), exp2()
   response.write "exp1,exp2"
  case exp3()
   response.write "exp3"
  case else
   response.write "exp4"
 end select

 'result : exp3
 

%>

2015년 7월 13일 월요일

점수 구하기

<script>
var score = parseFloat(prompt("give me score ",0),10);
alert("your score "+"FFFFFEDCBAA"[score/10]+" !!");
</script>

2014년 7월 10일 목요일

inline 형태의 프로퍼티는 unbind 할수 없습니다.

<textarea cols="117" rows="5" class="texa elastic_textarea" name="letter_content" id="letter_content" onkeyup="letter_content_lengthCheck(this, <%=max%>);"><%=letter_content%></textarea>

이러한 형태로  onkeyup 이벤트를 준 후
$("#letter_content").unbind("keyup")
을 하면 안먹음
removeAttr("onkeyup")
도 안먹음
removeProp("onkeyup")만 먹힘

이로써 알수 있는 사실 onkeyup이란 프로퍼티에 등록되있음
== 이벤트가 아니다 -> 이벤트가 트리거 형태로 들어가게됨

attribute와 .prop는 엄연히 다른것이니 알아서 알겟고 ..
여튼 이런 차이가 있음

2014년 4월 2일 수요일

한글이 아닌 영문 숫자만 가능하게  유효성 검사 함수

        var re = /[^a-zA-Z0-9\-_]+/g;
        var that = this;
        that.value.replace(re, function (curVal, curNum, totalVal) { //curval, p1,p2,p3.. totalVal
            that.focus(); 
            that.value = arguments[arguments.length - 1].replace(curVal, "");
        });


2014년 3월 29일 토요일

Element.insertAdjacentHTML 사용법

사용법

element.insertAdjacentHTML(position, text);


position의 위치

<!-- beforebegin -->
<p>
<!-- afterbegin -->
foo
<!-- beforeend -->
</p>
<!-- afterend -->


사용법 

html구성 
//<body>
// aaa

스크립트 실행
var eleBody = document.body;
eleBody.insertAdjacentHTML('beforeend','<div>b</div>');


결과 
//<body>
// aaa
//<div>b</div>

2014년 3월 6일 목요일

네이버 open api 맵 적용작업


1. 네이버에서 키 발급(https://developer.naver.com/openapi/register.nhn)

2. 해당소스에 <script type="text/javascript" src="https://openapi.map.naver.com/openapi/naverMap.naver?ver=2.0&key=키"></script> 임포트 시키고

function mapParse(areaid,Xlocation,Ylocation){
var oPoint = new nhn.api.map.LatLng(Xlocation, Ylocation);
var oPoint2 = new nhn.api.map.LatLng(Xlocation, Ylocation);
nhn.api.map.setDefaultPoint('LatLng');
oMap = new nhn.api.map.Map(areaid, {
center : oPoint,
level : 11, // - 초기 줌 레벨은 10이다.
enableWheelZoom : true,
enableDragPan : true,
enableDblClickZoom : false,
mapMode : 0,
activateTrafficMap : false,
activateBicycleMap : false,
activateRealtyMap : true,
minMaxLevel : [ 1, 14 ],
size : new nhn.api.map.Size(700, 350)
});

var mapZoom = new nhn.api.map.ZoomControl(); // - 줌 컨트롤 선언
mapZoom.setPosition({left:10, bottom:40}); // - 줌 컨트롤 위치 지정.
oMap.addControl(mapZoom); // - 줌 컨트롤 추가.

var oSize = new nhn.api.map.Size(60, 60);
var oOffset = new nhn.api.map.Size(60, 60);
var oIcon = new nhn.api.map.Icon('', oSize, oOffset);

// - Draggable Marker 의 경우 Icon 인자는 Sprite Icon이 된다.
// - 따라서 Sprite Icon 을 사용하기 위해 기본적으로 사용되는 값을 지정한다.
// - Sprite Icon 을 사용하기 위해서 상세한 내용은 레퍼런스 페이지의 nhn.api.map.SpriteIcon 객체를 참조하면 된다.
var testdefaultSpriteIcon = {
url:"",
size:{width:60, height:60},
spriteSize:{width:60, height:60},
imgOrder:0,
offset : {width: 60, height: 60}
};
// - 위에서 지정한 기본값을 이용해 실제로 SpriteIcon 을 생성한다.
var testDupSpriteIcon_first = new nhn.api.map.SpriteIcon(testdefaultSpriteIcon.url, testdefaultSpriteIcon.size, testdefaultSpriteIcon.spriteSize, 0, testdefaultSpriteIcon.offset);

var DraggableMarker = new nhn.api.map.DraggableMarker(testDupSpriteIcon_first , {
title : '',
point : oPoint,
zIndex : 1,
smallSrc :  testDupSpriteIcon_first});
oMap.addOverlay(DraggableMarker);

var mapInfoTestWindow = new nhn.api.map.InfoWindow(); // - info window 생성.
mapInfoTestWindow.setVisible(false); // - infowindow 표시 여부 지정.
oMap.addOverlay(mapInfoTestWindow); // - 지도에 info window를 추가한다.

oMap.attach('click', function(oCustomEvent) {
var oPoint = oCustomEvent.point;
var oTarget = oCustomEvent.target;
mapInfoTestWindow.setVisible(false);
// 마커를 클릭했을 때.
if (oTarget instanceof nhn.api.map.DraggableMarker) {
// 겹침 마커를 클릭했을 때.
if (oCustomEvent.clickCoveredMarker) {
return;
}

mapInfoTestWindow.setPoint(oTarget.getPoint());
mapInfoTestWindow.setVisible(true);
mapInfoTestWindow.autoPosition();
return;
}
});

var oLabel = new nhn.api.map.MarkerLabel(); // - 마커 라벨 선언
oMap.addOverlay(oLabel); // - 마커 라벨을 지도에 추가한다. 기본은 라벨이 보이지 않는 상태로 추가됨.

oMap.attach("mouseenter", function(oEvent){
var oTarget = oEvent.target;
if(oTarget instanceof nhn.api.map.DraggableMarker){
//oLabel.setVisible(true, oTarget); // - 특정 마커를 지정하여 해당 마커의 title을 보여준다.
}
});

oMap.attach("mouseleave", function(oEvent) {
var oTarget = oEvent.target;
if(oTarget instanceof nhn.api.map.DraggableMarker){
oLabel.setVisible(false);
}
});
/*
* draggable marker 의 자체 이벤트로 changePosition 이 있다.
* 이 이벤트는, 사용자가 drag 를 이용해 마커의 위치를 옮길 때 발생한다.
* oEvent 의 파라미터는 두 개로, oldPoint 와 newPoint 이다.
* oldPoint 는 drag 하기 전의 마커 위치이며, newPoint 는 drag 한 이후의 마커 위치가 된다..
*/
DraggableMarker.attach("changePosition" , function (oEvent) {
if(mapInfoTestWindow.getVisible() != false){
mapInfoTestWindow.setVisible(false); // - infowindow 의 표시 여부 지정.
// - infoWindow 의 내용은 사용자가 임의로 지정할 수 있습니다. 단 HTML 로 지정을 하셔야 합니다.

mapInfoTestWindow.setPoint(oEvent.newPoint);
mapInfoTestWindow.setVisible(true);
mapInfoTestWindow.autoPosition();
}
});
}

자바스크립트 함수 추가
mapParse("open","37.571027811", "127.0224897"); 로 실행

3. 주소로 위도 경도 값 가져오기(classic asp)

    Session.CodePage = 65001
Response.CharSet = "utf-8"
'
' addressStr = "건국대학교"
'
'
' Set xmlHttp = Server.CreateObject("Microsoft.XMLHTTP")
' request_url = "http://openapi.map.naver.com/api/geocode.php?key=키값&encoding=utf-8&coord=latlng&query=" & Replace(addressStr," ","")
' xmlHttp.open "GET", request_url, false
' xmlHttp.send(null)
' str_xml = xmlHttp.ResponseText
'
'
'
'
' If str_xml <> "" Then
' Set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
' xmldoc.async = false
' xmldoc.validateOnParse = false
' xmldoc.loadXML(str_xml)
'
'
'
'
' If xmldoc.selectNodes("//total")(0).text > 0 Then
' latStr = xmldoc.selectNodes("//y")(0).text '위도
' lngStr = xmldoc.selectNodes("//x")(0).text '경도
' address = xmldoc.selectNodes("//address")(0).text '주소
'
' Else
' latStr = "0"
' lngStr = "0"
' End If
'
' Set xmldoc = Nothing
'
' Else
' latStr = "0"
' lngStr = "0"
' End If
' Response.Write("addressStr 의 좌표는") & "<br />"
' Response.Write("위도 : " & latStr) & "<br />"
' Response.Write("경도 : " & lngStr)
'
' Set xmlHttp = Nothing