post 값이 없습니다.
본문
제가 게시판 태그 기능을 가져와서 상품에 붙여보려고
itemform.php에 다음과 같이 붙였습니다.
<form name="fitemform" action="./itemformupdate.php" method="post" enctype="MULTIPART/FORM-DATA" autocomplete="off" onsubmit="return fitemformcheck(this)">
<?php include_once('stopbuy.php'); ?>
<input type="hidden" name="it_7" id="it_7">
<div class="tagList">
<div class="tagListIpt">
<ul>
<?php
if($it['it_7']){
$tags = explode(',',$it['it_7']);
for($i=0; $i<count($tags); $i++){
echo '<li class="tag">#<span>'.$tags[$i].'</span><i class="material-icons">clear</i></li>';
}
}
?>
<li class="tabTxt"><input type="text" id="tagIpt" placeholder="아이디를 입력해주세요!" maxlength="15"></li>
</ul>
</div>
</div>
</form>
<script>
function fitemformcheck(f)
{ inputTagList(); }
</script>
stopbuy.php
<script>
$(window).ready(function(){
$(document).on('click','.tag > i',function(){
$(this).parent().remove();
});
$("#tagIpt").on("keyup", function(event) {
$(".tagListIpt ul li span").removeClass('overlap');
if(event.keyCode == 32){
$(this).val($(this).val().replace(/ /gi, ""));
inputTag($(this).val());
}
});
});
function inputTagList(){
var linCnt = $(".tagListIpt ul li.tag").length;
var tag = '';
for(var i=0; i<linCnt; i++){
var j = i+1;
if(!tag){
tag = $(".tagListIpt ul li:nth-child("+j+") span").html();
}else{
tag += ','+$(".tagListIpt ul li:nth-child("+j+") span").html();
}
}
tag = tag.replace(" ", "");
console.log('after replace : '+tag);
$("#it_7").val(tag);
}
function chkOverlap(a){
var linCnt = $(".tagListIpt ul li.tag").length;
var overlap = false;
for(var i=0; i<linCnt; i++){
var j = i+1;
if(a == $(".tagListIpt ul li:nth-child("+j+") span").html()){
$(".tagListIpt ul li:nth-child("+j+") span").addClass('overlap');
overlap = true;
}
}
return overlap;
}
function inputTag(a){
a = a.replace(/ /g, '');
var linCnt = $(".tagListIpt ul li.tag").length;
if(chkOverlap(a) == false){
if(linCnt < 30){
var taghtml_ = '';
taghtml_ += '<li class="tag">#<span>';
taghtml_ += a;
taghtml_ += '</span><i class="material-icons">clear</i></li>';
$(".tabTxt").before(taghtml_);
}else{
alert('아이디 입력은 최대 30개까지 가능합니다.');
}
$("#tagIpt").val('');
}
}
</script>
그런데 입력폼에서 입력은 잘 되는데 DB에 저장이 되지 않아서 보니
포스트값이 없는 걸로 나옵니다.
이와 같이 DB에 강제 삽입했을 땐 정상표시 됩니다.
저장이 아닌 입력도 마찬가지로 잘 되구요.
포스트값 전달이 문제인 듯 한데 뭐가 문제일까요? ㅠㅠ
!-->!-->답변 2
아마 다 해보셨겠지만 점검해야될 사항
1) 크롬에서 F12로 개발자모드를 켠 후 ,
태그추가 및 삭제하는 동안 <input type="hidden" name="it_7" id="it_7">
의 값이 어떻게 변하는지 살펴볼것.
2) 올려주신 소스상에서는
function fitemformcheck(f) {
inputTagList();
}
이 호출되는 부분이 안보이는데 (설마 없는건 아니겠죠? 올려주신 소스가 전부는 아닐거라 믿습니다.)
아마 form을 submit 시키는 버튼이 따로 있을 거라 생각이 되네요.
이 부분에서
function fitemformcheck(f) {
inputTagList();
return false;
}
로 걸고, 콘솔에 console.log('after replace : '+tag); 값이 어떻게 찍히는지 확인할 것.
뭐 이정도네요.
<input type="text" id="tagIpt" placeholder="아이디를 입력해주세요!" maxlength="15">
name 이 빠졌습니다.
답변을 작성하시기 전에 로그인 해주세요.