회원테이블의 사원번호 조회시 이름이 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하시면될꺼 같네요...저도 글로서 그림을 그리는거 같네요 ^^
</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개
댓글을 작성하려면 로그인이 필요합니다.
답변이 달리긴 했지만 아래 내용 참고해보세요.
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개
제가 원하는 설명을 해주신거 같은데 조회 눌러도 반응이 없어서 재 문의 드립니다
일단 루트에 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]
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'] = "임의 사원번호"; 첫줄에 추가하셔서 쿼리 파일에 문제가 없는지 먼저 확인을 해보는게 좋을듯 합니다.
말씀처럼 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
[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]
#tname 결과값을 나타내줄 id 값이 맞습니다.
서버 별도 설치는 모르겠네요.
$('#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
[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]
알려주신 방법으로 최종 성공하여 아래와 같이 정보 검색하시는 분들 도움이 될 수 있도록 최종 공유드립니다.
아래 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]
댓글을 작성하려면 로그인이 필요합니다.
페이지 이동없이 입력되게라는 말씀이
이름이 입력되지 않으면 폼데이터가 안넘어가게 하고싶다는 말씀이신가요 ?
제가 질문파악을 제대로 했는지 모르겠네요.
그게 맞다면
input text 박스에 required 속성 하나 넣어주시면 됩니다.
required 에 대한 자세한 사용방법은 아래를 참조하세요
https://www.w3schools.com/tags/att_input_required.asp
답변에 대한 댓글 1개
text 1 사번를 넣고 조회 버튼을 누르면
바로 아랫칸 text2에서 사번에 해당하는 이름이 들어가야합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인