2017-05-17 15 views
2

Vue.jsでAjaxリクエストを行い、2つのパラメータがあります。最初のものは大丈夫ですが、2番目のパラメータはコンソールに未定義で記録されます。私はこの問題を解決する方法を理解しようとしていますが、私は適切な解決策を見つけることができません。ここで Ajaxリクエストの第2パラメータが定義されていません

は、$アヤックス()のコードです:

//$.ajax() to add agregators to users 
    addAgregators: function(id1, data1) { 
    var self = this; 
    console.log(id1); 
    console.log(data1);//THIS IS THE PARAMETER RETURNING UNDEFINED 
    var formData = new FormData(); 
    formData.append('id1',data1); 
    $.ajax({ 
     url: url + "/addAgregators", 
     type: "POST", 
     data: { 
      agregators: data1, 
      id: id1 
     }, 
     dataType: "json", 
     data:formData, 
     contentType: false, 
     cache: false, 
     processData: false, 
     success:function(obj){ 
      console.log(obj);// 
      this.agr1=obj; 
      console.log('success!'); 
      reDesignAgregators(); 
     }, 
     error:function(){ 
      console.log('error'); 
     }//end error function 
    });//end addAgregators $.ajax() function 
    },//end addAgregators function 

私は、私はボタンをクリックしたときにagregatorsを追加することになってるし、これが成功するために、私は、ユーザーと、選択しagregatorを持っていますが、なければなりませんボタンをクリックするとエラーが表示され、2番目のパラメータログは未定義です。ここ

とはHTMLです:

   <div class="row"> 
       <div class="col-md-12"> 
        <div class="col-md-1"> 
         <button id="addagr"> 
          <img id="add" v-on:click="addAgregators('<?php echo $value1['id'] ;?>')" src="<?php echo $url;?>/public/images/plus.svg"> 
         </button> 
        </div> 
        <div class="col-md-7" id="addlab">Add Agregator</div> 
       </div> 
      </div> 

は君たちが役立つことを願って!

Agregators HTMLコード:

<div id="aggs"> 
         <?php 
         if(!empty($agrusr)) 
         { 
          foreach($agrusr as $value1) 
          { 
           $username= $value1['username']; 
           if($username=="" || $username==NULL) 
           { 
            $username="Unatributed"; 
           } 
           $id='au'.$value1['id'];?> 
           <div class="row oddEven allAggregatores " id='<?php echo $value1['uid'];?>' > 
            <div id="<?php echo $id;?>"> 
            <div class="col-md-1"> 
             <input type="checkbox" value=<?php echo $value1['id'];?> name="agrwithuser[]" value="2"> 
            </div> 
            <div class="col-md-7"> 
             <span id="items"><?php echo ucfirst($value1['agregator']);?></span> 
            </div> 
            <div class="col-md-2"> 
             <div class="colorsByUsers" :style="{backgroundColor: randomColor()}"><?php echo ucfirst($username);?></div> 
            </div> 
            </div> 
           </div> 

          <?php 
          // echo "<div id=".$id."><input type='checkbox' name='agrwithuser[]' value=". $value1['id'] .">". $value1['agregator']." &nbsp;&nbsp;&nbsp;".$username."<br /></div>";     
          } 
         }?> 

        </div> 
+0

あなたが倍にデータのパラメータを追加しました。 –

答えて

1

あなたの問題は、Ajaxの構成でdata属性をオーバーライドするdata:formDataを設定することです。あなたはパラメータを1つだけ持って、第二はundefinedである理由です

formData.append('id1',data1); 

そしてformDataあなたが行に追加さだけid1プロパティが含まれています。

あなたのAjaxの設定からラインdata:formDataを削除し、HTML内の2つのパラメータを使用してaddAgregators()関数を呼び出す、次のようにする必要があります。

<img id="add" v-on:click="addAgregators('<?php echo $value1['id'] , $value1['agregators'] ;?>')" src="<?php echo $url;?>/public/images/plus.svg"> 
+0

さて、説明してくれてありがとう!しかし、どのように2番目のパラメータをHTMLに追加する必要がありますか?私は告白します、私はjavascriptの初心者ですので、どうすればこの部分を修正するべきかも考えています。 – Timmy

+0

'addAgregators( '<?php echo $ value1 [' id '];?>'、 '<?php echo $ value1 [' agregators '];?>')'。/ 無効な式:V-上:未定義のインデックス:中agregators = "addAgregators( '347'、 '
お知らせをクリックして、私はHTMLに欠落しているパラメータを適用すると –

+0

vue.jsは私にエラーを与えています – Timmy

関連する問題