개발 Q&A

제목 중간에 알림창을 띄우고 사용자가 선택한 값 받아오는 방법이 있을까요?
카테고리 PHP
글쓴이 정수리 작성시각 2018/05/25 14:31:36
댓글 : 10 추천 : 0 스크랩 : 0 조회수 : 10018   RSS

컨트롤러에서 업로드한 엑셀 데이터를 가져온후 

 

모델로 데이터를 보낸 후 

 

모델에서 

 

반복문을 통해

 

holdID 값 가져온 후에 

 

holdID 여부 에 따라

 

알림창을 띄웁니다.(javascript confirm 문사용)

 

거기서 사용자가 선택한 값을

 

php에서 가져와서 사용할수 있을까요??

 

검색을 해보았지만 따로 해답을 얻지 못해 글을 올리게 되었습니다.

 

​
class Paydata_m extends CI_Model{

	function __construct()
	{
		parent::__construct();
	}

   @parmas 엑셀데이터
	function setPayData($params='')
	{	
		$i=1;
		foreach($params as $excel) {

			$holdID = $this->getHoldID($excel);
			
			if(empty($holdID)) {
				echo $i;
               //test값을 php에서 사용할수 있을까요?
				echo '<script>
					var test = confirm("일치하는 점용건이 없습니다. 새로 생성하시겠습니까?");
				</script>';
				$i++;
			}
			else
			{

			}
			/*echo $excel[0][13].' ';//납부자구분
			echo $excel[0][14].' ';//사업자번호&주민
			echo $excel[0][15].' ';//사업자명
			echo $excel[0][34].' ';//물전지주소
			echo '<br>';*/

			
		}
	}

	function getHoldID($params='')
	{
	
		if($params[0][13] == '사업자' || $params[0][13] == '법인') {
				
			$sql = 'select holdID from ri_road where rqMan = ? and holdPoint = ? and rqManNum = HEX(AES_ENCRYPT("'.htmlspecialchars($params[0][14]).'", 	"loadi@4020"))';			
		}	
		else
		{
			$sql = 'select holdID from ri_road where rqMan = ? and holdPoint = ? and rqManNum = HEX(AES_ENCRYPT("'.ManNumCut($params[0][14]).'", 	"loadi@4020"))';
		}

		$query = $this->db->query($sql, array($params[0][15], htmlspecialchars($params[0][34])));


		
		$holdID = $query->row_array();

		return $holdID;

	}
}
 다음글 다음 검색 시, 사이트의 서브링크를 등록 및 수정하는 ... (5)
 이전글 파일 업로드 시 용량 제한 (1)

댓글

빛그림 / 2018/05/25 15:04:31 / 추천 0

confirm이 true이면 ajax로 데이터 요청후 결과를 출력하시면 되지 않을까 싶습니다.

다만 중간에 값을 입력받아야 하는 것을 자바스크립트로 처리할 거면 prompt를... 

근데 부트스트랩 기반이면 기본 제공되는 모달을 이용하심이 디자인상으로는 더 좋을듯 싶네요.

 

정수리 / 2018/05/25 15:15:41 / 추천 0

@빛그림

답변감사합니다.

php코드안에서 ajax를 사용하시라는 말씀이실까요??

 

빛그림 / 2018/05/25 15:20:29 / 추천 0

자바스크립트를 먼저 사용해서 사용자에게 값을 입력 또는 선택하게끔 하실거잖아요.

그때 그 값을 받거나 true가 되면 ajax를 실행하시라는 것이죠...

꼭 자바스크립트로 해야 한다면 아래처럼 하시면 되긴 하는데 모달을 쓰시거나, PHP폼 전송을 이용하는게 낫지 않을까 싶습니다.

 

var user_id = prompt("입력하세요.", "default");

if(user_id == "good")
{
    $.ajax({
        type: "post",
        url: 요청할 url,

        dataType: 'json',
        data: {
            // COMMON
            "data1": "data1",
            "data2": "data2",
            "data3": "data3"
            },
        cache: false,
        async: false,
        success: function(data) {
            $('#test').html(data);
        }
    }); 
}

 

정수리 / 2018/05/25 15:44:59 / 추천 0

@빛그림

자바스크립트를 먼저 사용하는게 아닙니다;

php에서 엑셀파일을 업로드 하고

업로드한 파일의 데이터를 가져온 후 (컨트롤러)

모델로 보낸 후 반복문을 통해 db에서 데이터 여부를 확인 하면서

데이터가 없을 경우 스크립트 문의 confirm() 띄웁니다;

빛그림 / 2018/05/25 16:02:12 / 추천 0

아... 네... 제가 잘못이해했군요. 

그러면 자바스크립트에서 PHP로 값을 전달하고자 하시는건가요?

정수리 / 2018/05/25 17:08:06 / 추천 0

@빛그림

네 그렇습니다 ㅜㅜ

그런데 아무리 알아봐도 위의 형태로는 php에서 javascript 변수를 사용할수 없다고 하더라구요 ㅜㅜ

그래서 다른 형태로 로직 짤려고 합니다..

빛그림 / 2018/05/25 17:11:00 / 추천 0
제가 그렇게 써야할 때가 좀 많았는데 저는 <input type="hidden" name="seob"> 태그를 숨겨두고, 자바스크립트로 seob에 데이터를 넣고 처리합니다.
/ 2018/05/31 02:10:04 / 추천 0

아마 제일 이상적인건

1.  엑셀파일 업로드 ( 데이터를 저장하지 않고, 읽어들인 후에 다시 내려줍니다(json형태로 변환후에)

2. 데이터를 받은 프론트에서 내려받은  json파일을 탐색합니다. (이때 php에서 체크하던 구문을 자바스크립트에서 체크 하시면 될듯)

3. 탐색 for문을 돌 때, 정상 값들은 다른 배열에 계속 쌓아두고 모두 정상이면, 검증된 데이터를 다시 서버에 보내서, 2차 검증(데이터가 맞는지)

확인 후에 데이터를 저장합니다.

 

이게 최선 아닐가요?

/ 2018/05/31 02:15:13 / 추천 0

javascript는 사용자 브라우저에서 실시간으로 실행되어집니다.

php는 서버에서 이미 전부 실행 된 후에 결과 값을 브라우저에 전송합니다.

그러므로 둘을 혼용해서 사용하기엔 무리가 있습니다.

즉 php (이미 서버에서 전부 실행해버리고 전송 될 값을 만들어서 브라우저에 보냄)

브라우저는 서버로 부터 데이터를 받은 후부터 javascript를 실행, 이미 둘은 공존할 수 없음

물론 ajax(비동기를 이용하여, 동적으로 데이터들을 운영할 순 있지만, 이역시도, 데이터를 보내면 서버에서 다 처리 후에 다시 프론트에서 받아서 실행 하는

방식 이므로, php 와 자바스크립트를 같은 시간대에 처리 하는 방식은 생각하셔선 안됩니다.

kaido / 2018/05/31 21:29:22 / 추천 0

ajax file upload 하면 될것 같네요

 

 ajax로 file 업로드 한다음에 업로드한 파일로 저장을 해서 가져오든 그냥 리드만 하든 엑셀데이터를 리턴 합니다

 

리턴 받아온 다음에 $.each 돌아서 처리 하고, 해당 데이터를 다시 저장 해야 한다면 hidden 폼에다 obj 떠서 수정해 놓고 완료시에 저장 하면 될것입니다

 

ajax file upload로 검색 한다음에 관련 라이브러리를 설치하고 파일 업로드 한다음에 처리 하시면 됩니다.

 

머리좀 싸매서 도전 해보시면 js => php  => js  형태로 변환 하는 것도 가능 합니다.

심지어 C => PHP => JAVA 전달도 됩니다.