私はjspでajaxを使ってidをチェックするように働いています。したがって、ユーザーが新しいアカウントを作成しようとすると、作成したいIDをタイプし、データベースに同じIDがあるかどうかをajaxがチェックします。存在する場合は 'n'を返し、jspでは 'unavailable'に変更します。同じidがなければ 'y'を返し、jspでは 'available'に変更します。問題は「n」だけを返すようなものだということです。idチェックインのjspのAjaxは同じ結果を返します
ここはjavascriptです。
$('#email').keyup(function(){
var str = $(this).val();
var server = "idcheck";
$.post(server, {"email":str}, function(data){
if(data.ret =='y'){
$('#valid_check').html("available");
}else if(data.ret =='n'){
$('#valid_check').html("unavailable");
}
});
});
ここにjoin.jspがあります。
<label id="valid_check">check if you can use id</label>
<input id="email" name="email" type="email" class="form-style-join" placeholder="ex> [email protected]" />
ここはコントローラです。
@RequestMapping(value = "/idcheck", method = { RequestMethod.GET, RequestMethod.POST })
public @ResponseBody HashMap<String,String> idCheck(HttpServletRequest request,
HttpServletResponse response){
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
response.setHeader("Access-Control-Allow-Origin", "*");
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
String mem_id = request.getParameter("mem_id");
int ret= memberMapper.memberIDCheck(mem_id);
HashMap<String,String> map = new HashMap<String,String>();
if(ret == 1){
map.put("ret", "y");
}else if(ret != 1){
map.put("ret", "n");
}
System.out.println(map);
return map;
}
ここにはMapperがあります。
@Select("SELECT count(*) AS cnt FROM `member` WHERE mem_id=#{mem_id}")
public int memberIDCheck(String mem_id);
ありがとうございます! – camila