회원테이블의 사원번호 조회시 이름이 input text 박스에 나타나게 하고 싶습니다.

회원테이블의 사원번호 조회시 이름이 input text 박스에 나타나게 하고 싶습니다.

QA

회원테이블의 사원번호 조회시 이름이 input text 박스에 나타나게 하고 싶습니다.

본문

글로서 잘 설명이 될지 모르겠습니다.

 

DB명 : mem

테이블명 : member

칼럼 :  사원번호, 이름

 

 

form 태그 안에서

사원번호 : input text box 에 사번을 입력 후 검색 버튼을 누르면

 

이름 : input text box 에 이름을 페이지 이동없이 입력 되게 하고 싶습니다.

 

text box name 사원번호 : 1234    (검색 버튼)

text box name 이름 : 초기 공란

 

 

 

글로 그림을 그렸습니다. 죄송합니다. ㅜㅜ

이 질문에 댓글 쓰기 :

답변 3

음..저도 글로써 그림을 좀 그려드리게 되었네요

 

일단 g5_member 테이블 (즉 회원테이블) 안쪽에 당연히 사원번호(예:mb_sawon)가 입력되지 않을까 싶네요

ajax방식으로 사원번호 필드를 추가가 되어 사원번호가 있게되면..그 사원번호로..조회가 되면 당근 이름을 가지고 나올수 있겠네요.

 

그 가지고온 값을  text box에 name값이 mb_name 이라고 했을시 해당 text box 의 value값을  assign하시면될꺼 같네요...저도 글로서 그림을 그리는거 같네요 ^^

 


$.ajax({
    url: ajax_url,
    type: 'POST',
    async: false,
    cache: false,
    data: {
        'mb_sawon': mb_sawon
    },
    success: function(data) {
        if (data.mb_sawon) {
            form.mb_name.value  = data.mb_sawon;
        } 
    }
});

 

대략 ajax를 이용해서 위처럼 하면 될꺼 같네요..

즉 mb_sawon이란 값을 보내서  select해서 name값을 가지고 와서 mb_name값에 넣어주는건데요.

글로 하려니 쉽지 않네요.. 해보시고 어려우시면 쪽지 주세요

답변이 달리긴 했지만 아래 내용 참고해보세요.

php 파일과 상수, 변수들은 그누보드5 기준입니다.

 

[보여줄 페이지]


<form id="tdata" method="post">
사원 번호 : <input type="text" id="tsawon"name="tsawon" value="">
사원 이름 :   <input type="text" id="tname" name="tname" value="">
<button id="result">조회</button>
</form>
<script>
$( document ).ready(function() {    
    $('#result').click(function(e){    
        e.preventDefault(e);
        $.ajax({
            url:g5_url+'/ajax/check.php',//php함수가 실행될 경로 및 파일
            type: "post",        
            data: $("#tdata").serialize(),
            if(data){
                $("#tname").val(data);
            }else{
                alert('결과가 없습니다');
            }
            }
        });        
    });
});
</script>

 

그누보드 루트 폴더에 ajax 폴더 만들고 하위에 check.php 파일 내용

만약

칼럼 사원번호 : sanum, 이름 : saname 이라면


<?php
include_once('../common.php');
$data_result = "SELECT * FROM `member` WHERE `sanum` = '".$_POST['tsawon']."'";
$data_result = sql_fetch($data_result);
echo $data_result['saname'];
?>

 

이렇게 한번 해보세요.

 

안녕하세요 답변 뒤늦게 확인하고 아래와 같이 변경하여 실행하였습니다.

제가 원하는 설명을 해주신거 같은데 조회 눌러도 반응이 없어서 재 문의 드립니다

일단 루트에 ajax 폴더를 만들어 그 안에

in.php[보여줄페이지]
check.php를 넣었습니다.


테이블명 lm_member
칼럼 : employeenum, name


보여줄페이지


<form id="tdata" method="post">
사원 번호 : <input type="text" id="employeenum" name="employeenum" value="">
사원 이름 :   <input type="text" id="name" name="name" value="">
<button id="result">조회</button>
</form>
<script>
$( document ).ready(function() {    
    $('#result').click(function(e){    
        e.preventDefault(e);
        $.ajax({
            url:g5_url+'/ajax/check.php',//php함수가 실행될 경로 및 파일
            type: "post",        
            data: $("#tdata").serialize(),
            if(data){
                $("#name").val(data);
            }else{
                alert('결과가 없습니다');
            }
            }
        });        
    });
});
</script>



체크 페이지



<?php
include_once('../common.php');
$data_result = "SELECT * FROM `lm_member` WHERE `employeenum` = '".$_POST['employeenum']."'";
$data_result = sql_fetch($data_result);
echo $data_result['name'];
?>

in.php 의
url:g5_url+'/ajax/check.php',
여기서 g5_url과

check.php의
include_once('../common.php'); (그누보드 기본 설정 및 함수들 불러오는 필수 파일)
sql_fetch
이게 그누보드 함수입니다.
아마 그누보드가 아니실것으로 생각이 되는데 해당 홈페이지에 맞게 변경하셔야하고

check.php 에서
sql 쿼리 위에 $_POST['employeenum'] = "임의 사원번호";
넣으신다음

check.php 파일만 단독으로 실행하셔서 값이 나오는지 우선 확인해보셔야할것 같아요.

그리고 이전에 작성하신 질문글들을 보니 그누보드는 아니신게 맞는것 같은데.


  $con=mysqli_connect("localhost", "ID", "비번", "DB명") or die("MariaDB 접속 실패 !!");
  $data_result = "SELECT * FROM `lm_member` WHERE `employeenum` = '".$_POST['employeenum']."'";
  $result = mysqli_query($con, $data_result );
  $row = mysqli_fetch_assoc($result);
  echo $row['name'];

이렇게 변경 하시고 윗 댓글처럼 $_POST['employeenum'] = "임의 사원번호"; 첫줄에 추가하셔서 쿼리 파일에 문제가 없는지 먼저 확인을 해보는게 좋을듯 합니다.

아... 해당 테이블은 그누보드 DB 안에 있는게 맞구요

말씀처럼 check.php에서 사번 변수를 사용하지 않고 사번을 직접 입력 했을때 이름을 가져오는 것 까진 성공 하였습니다.

무엇이 문제 일까요.

정상 사번, 틀린 사번 아무거나 넣어도

입력된 TEXT BOX가 초기화 되빈다.

 조금만 더 하면 될 것 같은데 ^^ 좀더 쳐다보도록 하겠습니다~~

아 제가 아주 중요한걸 하나 빼먹었었네요.

$( document ).ready(function() {   
    $('#result').click(function(e){   
        e.preventDefault(e);
        $.ajax({
            url:'/ajax/check.php',//php함수가 실행될 경로 및 파일
            type: "post",       
            data: $("#tdata").serialize(),
success : function(data) {
if(data){
$("#name").val(data);
}else{
alert('결과가 없습니다');
}
            }
        });       
    });
});

해보세요.

success : function(data) {
이게 빠졌었습니다.

알려주신 코드로 진행하였는데

무반응이네요..

죄송하지만

xampp 사용하여 롤컬 서버로 하고 있는데

ajax 활용하려면 서버에 별도로 설치해줘야 하는게 있을가요?


그리고 알려주신 아래 소스중에

#tname 은 제 기준의 #name 으로 작성하는게 맞는거죠?

 if(data){
                $("#tname").val(data);

될듯될듯 될 것 같은데 왜 안되는걸까요~~

코드 정리해서 다시 올려보겠습니다~~~


in.php


<form id="tdata" method="post">
사원 번호 : <input type="text" id="employeenum" name="employeenum" VALUE = "">
사원 이름 : <input type="text" id="name" name="name" VALUE = "">
<button id="result">조회</button>
<button id="result2">제이쿼리 테스트</button>
</form>


<script>
$( document ).ready(function() {   
    $('#result').click(function(e){   
        e.preventDefault(e);
        $.ajax({
            url:'/ajax/check.php',//php함수가 실행될 경로 및 파일
            type: "post",       
            data: $("#tdata").serialize(),
success : function(data) {
if(data){
$("#name").val(data);
}else{
alert('결과가 없습니다');
}
            }
        });       
    });
});
$('#result2').click(function(){
alert("제이쿼리 정상작동");
});
});
</script>






check.php








<?php
include_once('../common.php');
$data_result = "SELECT name FROM `lm_member` WHERE `employeenum` = '".$post['employeenum']."'";
$data_result = sql_fetch($data_result);
echo $data_result['name'];
?>

$( document ).ready(function() { 
    $('#result').click(function(e){ 
        e.preventDefault(e);
        $.ajax({
            url:'/ajax/check.php',//php함수가 실행될 경로 및 파일
            type: "post",     
            data: $("#tdata").serialize(),
success : function(data) {
if(data){
$("#name").val(data);
}else{
alert('결과가 없습니다');
}
            }
        });     
    });
});

이건 되실겁니다. });가 1개 더있었고 계속 기본 문법에서 잘못된점이 있었네요.

말씀처럼 이번에는 될 줄 알았는데 안되네요.

저보다 더 답답하게 늦겨 지실거 같아요~~

in.php



<form id="tdata" method="post">
사원 번호 : <input type="text" id="employeenum" name="employeenum" VALUE = "">
사원 이름 : <input type="text" id="name" name="name" VALUE = "">
<button id="result">조회</button>
</form>


<script>
$( document ).ready(function() { 
    $('#result').click(function(e){ 
        e.preventDefault(e);
        $.ajax({
            url:g5_url+'/ajax/check.php',//php함수가 실행될 경로 및 파일
            type: "post",     
            data: $("#tdata").serialize(),
success : function(data) {
if(data){
$("#name").val(data);
}else{
alert('결과가 없습니다');
}
            }
        });     
    });
});
</script>	








check.php

<?php

include_once('../common.php');
$data_result = "SELECT * FROM `lm_member` WHERE `employeenum` = '".$_POST['employeenum']."'";
$data_result = sql_fetch($data_result);
echo $data_result['name'];
?>

댓글 및 쪽지로 도움을 많이 주신 Dessi 님께 감사 드립니다.

알려주신 방법으로 최종 성공하여 아래와 같이 정보 검색하시는 분들 도움이 될 수 있도록 최종 공유드립니다.


아래 2개의 php 소스는

그누 루트 ajax 폴더 안에 넣고 작업하였습니다.


조회폼
in.php



<form id="tdata" method="post">
사원 번호 : <input type="text" id="employeenum" name="employeenum" VALUE = "">
사원 이름 : <input type="text" id="name" name="name" VALUE = "">
<button id="result">조회</button>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>


<script>
$( document ).ready(function() { 
    $('#result').click(function(e){ 
        e.preventDefault(e);
        $.ajax({
            url:'check.php',//php함수가 실행될 경로 및 파일
            type: "post",     
            data: $("#tdata").serialize(),
success : function(data) {
if(data){
$("#name").val(data);
}else{
alert('결과가 없습니다');
}
            }
        });     
    });
});

</script>	




체크php

check.php



<?php
include_once('../common.php');
$data_result = "SELECT * FROM `lm_member` WHERE `employeenum` = '".$_POST['employeenum']."'";
$data_result = sql_fetch($data_result);
echo $data_result['name'];
?>

페이지 이동없이 입력되게라는 말씀이 

 

이름이 입력되지 않으면 폼데이터가 안넘어가게 하고싶다는 말씀이신가요 ?

 

제가 질문파악을 제대로 했는지 모르겠네요.

 

그게 맞다면

 

input text 박스에 required 속성 하나 넣어주시면 됩니다.

 

required 에 대한 자세한 사용방법은 아래를 참조하세요

 

https://www.w3schools.com/tags/att_input_required.asp

 

답변을 작성하시기 전에 로그인 해주세요.
전체 123,532 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT