form에 보내기전에 추가로 값을 넣어서 보낼수 있나요?
본문
<form onsubmit="fcheck(this)" action="주소" method="get">
<input type="text" name="testing">
<input type="submit">
</form>
<script>
function fcheck(e){
....
}
</script>
form으로 값을 보낼때 현재 form 안의 input태그인 testing말고 추가적으로 지정한값 (예를 들어 현재시간)같은걸 보낼 때 어떻게 적어야 할 지를 모르겠네요..
매번 hidden으로 숨켜서 값을 넣는것보다 form에서 보낼때 값을 추가하면 좋을거같아 질문드립니다.
!-->답변 4
보통 form 에서 넘어온 뒤 php 상에서도 구현할수 있는것은 (현재시간 등) php 에서 구현하고
form 에서 받아야 하면 hidden 으로 처리합니다.
원하시는 부분을 적용 하시려면
AJAX 폼 전송 으로 하셔야 할 듯 합니다.
<form name="FormXXX" id="FormXXX" method=post enctype="multipart/form-data" autocomplete="off">
....
</form>
<button type='button'>전송</button>
<script>
var ajax_InsertSubmit=function() {
var form = $('form')[0];
var formData = new FormData(form);
formData.append('nowDate', '현재날짜');
$.ajax({
url: 'XXXX_update.php', //업데이트 php 문서 경로
type: 'POST',
data: formData,
processData: false,
contentType: false,
dataType: 'json',
async:true,
success: function (data) {
alert(data.msg);
},
error : function (data, status) {
alert("데이타 접근에 실패 하였습니다.");
return true;
}
});
}
if (confirm("등록 하시겠습니까?") == true){ //확인
ajax_InsertSubmit()
return false;
}else{ //취소
return;
}
</script>
XXXX_update.php
<?php
....
$msg = "등록 되었습니다.";
die("{\"msg\":\"$msg\"}");
?>
<form에 id 하나를 추가하신 후에 아래처럼 하시면 되지 않을까요?
function fcheck(e) {
$("#폼 아이디").append("<input type='hidden' name='test' value='111'>");
...
}
form onsubmit="fcheck(this)" action="주소" method="get" onsubmit="return fcheck(this)">
<input type="text" name="testing">
<input type="submit">
</form>
<script>
function fcheck(f){
f.action = f.action + '?current_time=' + '<?php echo date('His') ?>';
return true;
}
</script>
하지만 hidden 으로 넘기는 것이 더 권장되는 방법입니다.