테스트 사이트 - 개발 중인 베타 버전입니다

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

꼬불꼬불차차 3년 전 조회 1,875

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

 

DB명 : mem

테이블명 : member

칼럼 :  사원번호, 이름

 

 

form 태그 안에서

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

 

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

 

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

text box name 이름 : 초기 공란

 

 

 

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

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
복스리
3년 전

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

 

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

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

 

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

 

</p>

<p>$.ajax({

    url: ajax_url,

    type: 'POST',</p>

<p>    async: false,

    cache: false,

    data: {

        'mb_sawon': mb_sawon

    },

    success: function(data) {

        if (data.mb_sawon) {

            form.mb_name.value  = data.mb_sawon;</p>

<p>        } 

    }

});</p>

<p>

 

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

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

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

꼬불꼬불차차
3년 전
생각했던대로 어렵네요~ 좀더 공부하겠습니다 감사합니다~

댓글을 작성하려면 로그인이 필요합니다.

Dessi
3년 전

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

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

 

[보여줄 페이지]

</p>

<p><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></p>

<p><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('결과가 없습니다');

            }

            }

        });        

    });

});</p>

<p></script></p>

<p>

 

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

만약

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

</p>

<p><?php

include_once('../common.php');</p>

<p>$data_result = "SELECT * FROM `member` WHERE `sanum` = '".$_POST['tsawon']."'";

$data_result = sql_fetch($data_result);

echo $data_result['saname'];</p>

<p>?></p>

<p>

 

이렇게 한번 해보세요.

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 11개

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

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

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

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


테이블명 lm_member
칼럼 : employeenum, name


보여줄페이지
[code]
<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>

[/code]

체크 페이지

[code]

<?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'];
?>

[/code]
D
Dessi
3년 전
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 파일만 단독으로 실행하셔서 값이 나오는지 우선 확인해보셔야할것 같아요.
D
Dessi
3년 전
그리고 이전에 작성하신 질문글들을 보니 그누보드는 아니신게 맞는것 같은데.


$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'] = "임의 사원번호"; 첫줄에 추가하셔서 쿼리 파일에 문제가 없는지 먼저 확인을 해보는게 좋을듯 합니다.
꼬불꼬불차차
3년 전
아... 해당 테이블은 그누보드 DB 안에 있는게 맞구요

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

무엇이 문제 일까요.

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

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

조금만 더 하면 될 것 같은데 ^^ 좀더 쳐다보도록 하겠습니다~~
D
Dessi
3년 전
아 제가 아주 중요한걸 하나 빼먹었었네요.

$( 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) {
이게 빠졌었습니다.
꼬불꼬불차차
3년 전
알려주신 코드로 진행하였는데

무반응이네요..

죄송하지만

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

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


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

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

if(data){
$("#tname").val(data);
꼬불꼬불차차
3년 전
될듯될듯 될 것 같은데 왜 안되는걸까요~~

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


in.php

[code]
<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>

[/code]




check.php






[code]

<?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'];
?>

[/code]
D
Dessi
3년 전
네 위 댓글에 아주 중요하게 한줄 빼먹은걸 추가해드렸으니 확인해주시고
#tname 결과값을 나타내줄 id 값이 맞습니다.
서버 별도 설치는 모르겠네요.
D
Dessi
3년 전
$( 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개 더있었고 계속 기본 문법에서 잘못된점이 있었네요.
꼬불꼬불차차
3년 전
말씀처럼 이번에는 될 줄 알았는데 안되네요.

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

in.php
[code]

<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>

[/code]




[code]

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'];
?>
[/code]
꼬불꼬불차차
3년 전
댓글 및 쪽지로 도움을 많이 주신 Dessi 님께 감사 드립니다.

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


아래 2개의 php 소스는

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


조회폼
in.php
[code]

<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>

[/code]


체크php

check.php

[code]

<?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'];
?>

[/code]

댓글을 작성하려면 로그인이 필요합니다.

3년 전

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

 

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

 

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

 

그게 맞다면

 

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

 

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

 

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

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

꼬불꼬불차차
3년 전
test.php 안에서
text 1 사번를 넣고 조회 버튼을 누르면
바로 아랫칸 text2에서 사번에 해당하는 이름이 들어가야합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인