2017-11-02 12 views
1

私のコードがすべてのPOSTデータを送信しない理由を理解しようとしています。このコードは、メインページで使用され、DBに格納されたリクエスト情報を取得し、別のページでDBのステータス更新をポストするために使用されます。変数名以外は基本的に同じです。POSTがすべてのフォーム変数を取得しない

注:私はここでたくさん検索しました。 Iveは配列内の 'content'データのみを表示するvar_dumpを使用しました。私は完全にjsで快適ではありませんが、いくつかの後に続くことができます。したがって、以下のコードは、別のページに拡張しようとする前に、1ページで編集してテストしたテンプレートです。問題がどこにあるか。私はなぜそれが1つではなく他のものではないのか分かりません。これが何かの重複とみなされている場合は謝罪しますが、理由を説明する同様の投稿では良い答えを見つけませんでした。 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にAJAXを経由して渡すようにフォームからすべてのデータを取得するために、フォーム上のserialize()を使用あなたのJSで、データで送信されない、または私は何かが不足していますか? – BarryWalsh

+1

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

関連する問題