2016-12-12 30 views
0

は、これはここに私のjavascriptのコードjavascriptでforeach入力値を取得し、それをajaxデータに渡す方法はありますか?

<script type="text/javascript"> 
$(function() { 
    $('.bargain_btn').click(function(e) { 
     var qty = $("#bargain_qty").val(); 
     var price = $("#bargain_price").val(); 
     var pro_id = $("#pro_id").val(); 
     var customer_id = $("#customer_id").val(); 
     var att_lable = $("#<?php echo strtolower($attribute['store_label']); ?>").val(); 
     alert(att_lable); 
     e.preventDefault(); 
     $.ajax({ 
      url: "<?php echo Mage::getUrl('bargain/Ajax/index'); ?>", 
      type: "POST", 
      data: {qty,price,pro_id,customer_id}, 
      success: function(data) { 
       if(data.success) { 
       } 
      } 
     }); 
    }); 
}); 

iはforeachのを使用してい形である私のフォーム

<form method="post" id="BargainForm"> 
    <input type="hidden" name="pro_id" class="pro_id" id="pro_id" value="<?php echo $pro_id; ?>"> 
    <input type="hidden" name="customer_id" class="customer_id" id="customer_id" value="<?php echo $customer_id; ?>"> 
    <input type="text" name="bargain_qty" class="bargain_qty" id="bargain_qty" placeholder="Qty" required/></br></br> 
    <?php if($productType = 'Configurable'): ?> 
     <?php foreach($attributes as $attribute): ?> 
      <input type="text" name="<?php echo strtolower($attribute['store_label']); ?>" 
             class="<?php echo strtolower($attribute['store_label']); ?>" 
             id="<?php echo strtolower($attribute['store_label']); ?>" 
             placeholder="<?php echo $attribute['store_label'] ?>"></br></br> 
     <?php endforeach; ?> 
    <?php else: ?> 

    <?php endif; ?> 
    <input type="text" name="bargain_price" class="bargain_price" id="bargain_price" placeholder="Total Price" required/></br></br> 
    <input type="submit" name="bargain_btn" class="bargain_btn"> 
</form> 

です。 2つの入力タグが表示されるように2つのデータがある場合、その2つの入力の値を保存してそれをどのように保存するかわからない場合data: {qty,price,pro_id,customer_id},

ありがとうございます!

答えて

2

ようなループを使用して生成されたすべてのテキストボックスに共通のクラスを提供する:データ{}セクション使用中のAJAX呼び出しにARRすなわち通過この配列を

var arr = []; 
$('.myTxt').each(function(){ 
    arr.push($(this).val()); 
}); 

foreach(...) 
{ 
    echo '<input class="myTxt" value="" id="" />'; 
} 

のjQueryをシリアライズするか、またはインデックスに登録します。

+0

では

data: {qty,price,pro_id,customer_id}, 

を交換し、それが働いてありがとう。@ Mayank – Vky

+0

素晴らしいこと。それがあなたのために働く場合、答えを受け入れてください:) –

+0

はい、あなたが知っているように、私たちは瞬間を受け入れることができません。時間制限があります – Vky

1

は使用しないでください:

data: { qty, price, pro_id, customer_id }, 

代わりに使用します。

data: $("#BargainForm").serialize(), 

それはあなたの$attribute['store_label']名前が一意である場合にのみ動作します。

1

data: "qty="+qty+"&price="+price+"&pro_id="+pro_id+"&customer_id="+customer_id+"&att_lable="+att_lable, 
関連する問題