이름: <input type="text" id="name" size="10"><br>
핸드폰: <input type="text" id="hp" size="13"><br>
var name=$("#name").val();
var hp=$("#hp").val();
& 연결 연산자로 이어줘야한다/ajax구문에서 data로 받아올 것이기 때문
//데이터 보내기 방법 1
//& 연결연산자
var data="name="+name+"&hp="+hp;
ajax함수를 통해서 백엔드로 데이터를 보낸다
$.ajax({
post 방식이라면 encoding해야하지만 get방식은 한글깨짐이 없어서 안써도됨
type:"get",
url:"ex01_read1.jsp",
return할 것이 없을때는 html/서버에 저장할 것이기 때문에
dataType:"html",
정의내린 data가져와도 되고(data:data) 직접 써도 가능(data:{"name":name,"hp":hp},)
data:data
data:{"name":name,"hp":hp},
success:function(res){
var name=$("#name").val();
var hp=$("#hp").val();
$.ajax({
type:"get",
url:"ex01_read2.jsp",
dataType:"html",
data:{"name":name,"hp":hp}, //방법2
success:function(res){
var s="<h2>"+name+"님 데이터를 DB에 추가함</h2>";
s+="<h2>"+name+"님의 휴대폰번호인 "+hp+"를 DB에 추가함</h2>";
$("#show").html(s)
}
})
})
btn1에서 var name=$("#name").val();을 가져온것
String name=request.getParameter("name");
String hp=request.getParameter("hp");
System.out.println("name: "+name);
System.out.println("hp: "+hp);
String name=request.getParameter("name");
String hp=request.getParameter("hp");
System.out.println("name: "+name);
System.out.println("hp: "+hp);
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Cute+Font&family=Diphylleia&family=Dokdo&family=Nanum+Brush+Script&family=Nanum+Gothic+Coding&family=Noto+Sans+KR&display=swap" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<title>Insert title here</title>
</head>
<body>
<h3>폼태그에 데이터 입력 후 jsp로 보내기</h3>
이름: <input type="text" id="name" size="10"><br>
핸드폰: <input type="text" id="hp" size="13"><br>
<button type="button" id="btn1">ajax로 서버에 보내기#1</button>
<button type="button" id="btn2">ajax로 서버에 보내기#2</button>
<hr>
<div id="show"></div>
<script>
$("#btn1").click(function(){
//입력한 값들을 읽는다
var name=$("#name").val();
var hp=$("#hp").val();
//데이터 보내기 방법 1
//& 연결연산자
var data="name="+name+"&hp="+hp;
//alert(data);
//ajax함수를 통해서 백엔드로 데이터를 보낸다
$.ajax({
//post 방식이라면 encoding해야하지만 get방식은 한글깨짐이 없어서 안써도됨
type:"get",
url:"ex01_read1.jsp",
//return할 것이 없을때는 html/서버에 저장할 것이기 때문에
dataType:"html",
//정의내린 data가져와도 되고(data:data) 직접 써도 가능(data:{"name":name,"hp":hp},)
//data:data
data:{"name":name,"hp":hp},
success:function(res){
//alert("success");
$("#show").html("<h4 class='alert alert-info'>"+data+"</h4>");
}
})
});
$("#btn2").click(function(){
//입력한 값 읽기
var name=$("#name").val();
var hp=$("#hp").val();
//ajax함수 통해서 백엔드로 데이터를 보낸다
$.ajax({
type:"get",
url:"ex01_read2.jsp",
dataType:"html",
data:{"name":name,"hp":hp}, //방법2
success:function(res){
var s="<h2>"+name+"님 데이터를 DB에 추가함</h2>";
s+="<h2>"+name+"님의 휴대폰번호인 "+hp+"를 DB에 추가함</h2>";
$("#show").html(s)
}
})
})
</script>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Cute+Font&family=Diphylleia&family=Dokdo&family=Nanum+Brush+Script&family=Nanum+Gothic+Coding&family=Noto+Sans+KR&display=swap" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<title>Insert title here</title>
</head>
<body>
<%
//btn1에서 var name=$("#name").val();을 가져온것
String name=request.getParameter("name");
String hp=request.getParameter("hp");
//콘솔창 확인
System.out.println("name: "+name);
System.out.println("hp: "+hp);
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Cute+Font&family=Diphylleia&family=Dokdo&family=Nanum+Brush+Script&family=Nanum+Gothic+Coding&family=Noto+Sans+KR&display=swap" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<title>Insert title here</title>
</head>
<body>
<%
String name=request.getParameter("name");
String hp=request.getParameter("hp");
//콘솔창 확인
System.out.println("name: "+name);
System.out.println("hp: "+hp);
%>
</body>
</html>
var data=$("#frm").serialize();
$.ajax({
type:"get",
url:"ex02_read.jsp",
dataType:"json",
data:data, //이 구문은 serialize해서 굳이 필요 없는 문구
success:function(res){
var s="상품코드: "+res.code+"<br>";
s+="상품명: "+res.name+"<br>";
s+="가격: "+res.price+"<br>";
s+="색상: "+res.color+"<br>";
$("#show").html(s);
}
})
data:{"name":name} 이렇게 가져올 수도 있다
getParameter로 가져온 값은 form의 name에서 가져온 것
on.put("ajax구문에 쓸 변수",가져온 값)
넣은 값들 String으로 변환
<%=ob.toString()%>
<%
String code=request.getParameter("s_code");
String name=request.getParameter("s_name");
String price=request.getParameter("s_price");
String color=request.getParameter("color");
JSONObject ob=new JSONObject();
//위 값을 form ajax에서 값을 다시 지정
ob.put("code", code);
ob.put("name", name);
ob.put("price", price);
ob.put("color", color);
%>
<%=ob.toString()%>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Cute+Font&family=Diphylleia&family=Dokdo&family=Nanum+Brush+Script&family=Nanum+Gothic+Coding&family=Noto+Sans+KR&display=swap" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<title>Insert title here</title>
</head>
<body>
<!-- json 데이터 처리 -->
<form id="frm">
<table class="table table-bordered" style="width: 400px;">
<tr>
<td>상품코드</td>
<td>
<input type="text" name="s_code" id="s_code"
class="form-contro" style="width: 100px;">
</td>
</tr>
<tr>
<td>상품명</td>
<td>
<input type="text" name="s_name" id="s_name"
class="form-contro" style="width: 100px;">
</td>
</tr>
<tr>
<td>가격</td>
<td>
<input type="text" name="s_price" id="s_price"
class="form-contro" style="width: 100px;">
</td>
</tr>
<tr>
<th>색상</th>
<td>
<input type="radio" name="color" value="yellow">노랑
<input type="radio" name="color" value="orange">오렌지
<input type="radio" name="color" value="cadetblue">청녹
<input type="radio" name="color" value="brown">갈색
<input type="radio" name="color" value="purple">보라
</td>
</tr>
<tr>
<td colspan="2" align="center">
<button type="button" id="btn"
class="btn btn-info">데이터 백엔드로 보내기</button>
</td>
</tr>
</table>
</form>
<br>
<div id="show" class="alert alert-info"></div>
<script>
$("#btn").click(function(){
//serialize 해당 아이디의 전체 태그 불러오기
var data=$("#frm").serialize();
//alert(data);
$.ajax({
type:"get",
url:"ex02_read.jsp",
dataType:"json",
data:data, //이 구문은 serialize해서 굳이 필요 없는 문구
success:function(res){
var s="상품코드: "+res.code+"<br>";
s+="상품명: "+res.name+"<br>";
s+="가격: "+res.price+"<br>";
s+="색상: "+res.color+"<br>";
$("#show").html(s);
}
})
});
</script>
</body>
</html>
<%@page import="org.json.simple.JSONObject"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
String code=request.getParameter("s_code");
String name=request.getParameter("s_name");
String price=request.getParameter("s_price");
String color=request.getParameter("color");
JSONObject ob=new JSONObject();
//위 값을 form ajax에서 값을 다시 지정
ob.put("code", code);
ob.put("name", name);
ob.put("price", price);
ob.put("color", color);
%>
<%=ob.toString()%>
var s에 정의된 값들에 " "띄어쓰기가 포함되어 있어서 값을 제대로 읽지 못함
var s="photono="+photono+"&photoname="+photoname+"&like1="+like1+"&like2="+like2+"&like3="+like3;
s는 ajax 구문에서 data:s로 받기 때문에 " "띄어쓰기가 있으면 띄어쓰기도 값으로 인식되어서 제대로 인식 안됨
$.ajax({
type:"get",
url:"ex03_receive.jsp",
dataType:"json",
data:s,
success:function(res){
var out="";
out+="상품사진:"+res.photo+"<br>";
out+="상품이름:"+res.photoname+"<br>";
out+="첫번째칸:"+res.like1+"<br>";
out+="두번째칸:"+res.like2+"<br>";
out+="세번째칸:"+res.like3+"<br>";
out+="총점:"+res.sum+"<br>";
out+="평균:"+res.avg+"<br>";
$("#show").append(out);
}
})
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Cute+Font&family=Diphylleia&family=Dokdo&family=Nanum+Brush+Script&family=Nanum+Gothic+Coding&family=Noto+Sans+KR&display=swap" rel="stylesheet">
<script src="https://code.jquery.com/jquery-3.7.0.js"></script>
<title>Insert title here</title>
</head>
<body>
<div style="margin: 50px;">
<b>사진선택: </b>
<select id="selImg">
<option value="1">샌드위치</option>
<option value="2">닭꼬치</option>
<option value="3">육계장</option>
<option value="11">망고샤벳</option>
<option value="12">순두부라면</option>
</select>
<br><br>
<input type="text" id="like1">
<input type="text" id="like2">
<input type="text" id="like3">
<button type="button" id="btn1">데이터전송</button>
<br>
<div id="show" class="alert alert-info"></div>
<script>
$("#btn1").click(function(){
var photono=$("#selImg").val();
var photoname=$("#selImg option:selected").text();
var like1=$("#like1").val();
var like2=$("#like2").val();
var like3=$("#like3").val();
var s="photono="+photono+"&photoname="+photoname+"&like1="+like1+"&like2="+like2+"&like3="+like3;
//alert(s);
$.ajax({
type:"get",
url:"ex03_receive.jsp",
dataType:"json",
data:s,
success:function(res){
var out="";
out+="상품사진:"+res.photo+"<br>";
out+="상품이름:"+res.photoname+"<br>";
out+="첫번째칸:"+res.like1+"<br>";
out+="두번째칸:"+res.like2+"<br>";
out+="세번째칸:"+res.like3+"<br>";
out+="총점:"+res.sum+"<br>";
out+="평균:"+res.avg+"<br>";
$("#show").append(out);
}
})
})
</script>
</div>
</body>
</html>
<%@page import="org.json.simple.JSONObject"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%
//front에서 보낸 데이터 읽어오기
String photono=request.getParameter("photono");
String photoname=request.getParameter("photoname");
String like1=request.getParameter("like1");
String like2=request.getParameter("like2");
String like3=request.getParameter("like3");
//총점==>String을 int로 변환
//평균
int sum=Integer.parseInt(like1)+Integer.parseInt(like2)+Integer.parseInt(like3);
double avg=sum/3.0;
//front형태로 만들어서 다시 front로 보내기
//ob.put("","../Food/"+1+".jpg");
JSONObject ob=new JSONObject();
ob.put("photo", "<img src='../Food/"+photono+".jpg' width='100'>");
ob.put("photoname",photoname);
ob.put("like1",like1);
ob.put("like2",like2);
ob.put("like3",like3);
ob.put("sum",sum);
ob.put("avg",avg);
%>
<%=ob.toString()%>