2017-11-02 5 views
1

내 코드가 모든 POST 데이터를 보내지 않는 이유를 알아 내려고했습니다. 이 코드는 메인 페이지에서 DB에 저장되어있는 요청 정보를 얻기 위해 사용되며 별도의 페이지에서 DB에 대한 상태 업데이트를 게시하는 데 사용됩니다. 기본적으로 변수 이름을 제외하고는 동일합니다.POST가 모든 양식 변수를 가져 오지 않음

참고 : 여기를 많이 검색했습니다. 필자는 배열의 '내용'데이터 만 보여주는 var_dump를 사용했습니다. 임씨는 js에 완전히 만족하지는 않지만 그 중 일부는 따라갈 수 있습니다. 따라서 아래 코드는 다른 페이지로 확장하기 전에 한 페이지에서 편집하고 테스트 한 템플릿입니다. 문제가있는 곳. 나는 그것이 왜 다른 하나가 아니라면 효과가 있는지 확신하지 못한다. 이것이 무엇이라도 중복으로 여겨지는 경우 사과드립니다.하지만 이유를 설명하는 유사한 게시물에서 좋은 답변을 찾지 못했습니다. admin.php :를 호출

if(isSet($_POST['content1'], $_POST['avatar'])) 

{ 
$content1=$_POST['content1']; 
$avatar=$_POST['avatar']; // <--- comes back NULL 
$sql_in= mysqli_query($con,"SELECT comment,comment_id,status_time FROM comments order by comment_id desc"); 
$r=mysqli_fetch_array($sql_in); 
} 

그리고 마지막으로 post.js :

$(function() { 

$(".post_button").click(function() { 

var element = $(this); 

var test = $("#content1").val(); 

var dataString = 'content1='+ test; 

if(test=='') 
{ 
alert("Please Enter Some Text"); 

} 
else 
{ 
$("#flash").show(); 
$("#flash").fadeIn(400).html('<span class="loading">Loading Comment...</span>'); 


    $.ajax({ 
    type: "POST", 
url: "insert.php", 
data: dataString, 
cache: false, 
success: function(html){ 



$("#display").after(html); 

document.getElementById('content1').value=''; 
$("#flash").hide(); 

} 


}); 
} 


return false; 
}); 

}); 

위해서 var_dump 등 :

다음

<form action="insert.php" method="post" enctype="multipart/form-data"> 
    <div class="share"> 
     <div class="arrow"></div> 
     <div class="panel panel-default"> 

     <div class="panel-body"> 
      <div class=""> 
       <img src="../logo.png" style="height:60px; width:60px; float:left; margin-right:3px;" /> 
       <textarea name="content1" id="content1" cols="40" rows="10" class="form-control message" style="height: 60px; width:450px; overflow: hidden;"></textarea> 
      </div> 
     </div> 

     <div class="panel-footer"> 
      <div class="row"> 
       <div class="col-md-7"> 
        <div class="form-group"> 
        <div class="btn-group"> 
         <select name="avatar" id="avatar" class="form-control-issue-avatar"> <----whats not sending 
          <option value="0" selected="selected">Author</option> 
          <option value="per1">P</option> 
          <option value="per2">W</option> 
         </select> 
        </div> 
        </div> 
       </div> 
       <div class="col-md-5"> 
        <input type="submit" value="Post" class="post_button">        
       </div> 
      </div> 
     </div> 
     </div> 

</form> 

는 insert.php입니다

Array ([content1] => sass) 
C:\wamp64\www\post\insert.php:32: 
array (size=1) 
'content1' => string 'sass' (length=4) 
+1

PHP로 아약스를 통해 전달하는 형태의 모든 데이터를 얻기 위해 양식에 serialize()를 사용 귀하의 JS에서 데이터를 보내지 않았거나 뭔가를 놓치고 있습니까? – BarryWalsh

+1

하나의 변수 만 보내고 있습니다. 왜 양식을 연재하시지 않으시겠습니까 – Akintunde007

+0

알아 내고자하는 게 뭐죠? js는 첫 번째 페이지에서 사용 된 함수와 같습니다. 첫 번째 페이지에는 모든 부분 (IE 이메일, 사용자 이름, 문제의 텍스트 입력)을 잡는 데 아무런 문제가 없습니다. 단서가 없습니다. 나는 수정없이 querySelectorAll을 사용하여 편집을 시도했다. @BarryWalsh – wiggins3

답변

2

id 속성 추가 다음 형태로 나는 당신이 반입되고 있지 않다면 당신은 아바타의 값을 보내는 생각하는 방법에 대한 혼란 스러워요

<form id='formid'> 


$.ajax({ 
data: $('#formid').serialize(), 
//other Ajax stuff 

}); 
+0

는 기존의 "추가"하여 제안 된 편집을 만들었지 만 그 차이는 보이지 않았다. 나는 그것을 잘못 사용하고 있을까? var dump는 여전히 표시했습니다 : C : \ wamp64 \ www \ post \ insert.php : 32 : 배열 (크기 = 1) 'content1'=> 문자열 'testttt'(길이 = 7) – wiggins3

+0

직렬화는 너는 모두 내용을 형성한다. 내가 말했듯이 양식을 만들고 직렬화하는 ID를 추가 했습니까? – Akintunde007

+0

nvm 작동했습니다 :) '#'가 누락되었습니다 – wiggins3