2016-12-12 2 views
0

Заранее спасибо, На самом деле у меня есть форма с двумя скрытыми полями текстовых полей: <input type="hidden" name="item_name" class="course_name" value="<?php echo $cartData['exam'];?>">, а другая - <input type="hidden" name="amount" class="amount" value="<?php echo $priceTotal;?>">, значение берется внутри скрытого поля динамически из кода PHP через цикл , Итак, как я могу получить динамические значения поля текстового поля «item_name» и поле текстового поля «сумма» в запятой, разделенной с помощью JQuery, при нажатии кнопки изображения с id = «placeOrder». Например, например: сумма -> 200 300 и название курса -> PMP, CAPM. Я написал код, который будет принимать значения внутри jquery в каждом цикле, но я должен пройти через ajax как формат json, например, data : {cname:course_name,priceBox:textboxVal}, поэтому значение с разделенным запятой значением должно проходить через имя_кода & textboxVal.Как получить два значения динамического текстового поля в jquery

Моя страница

<html> 
<head> 
    <title></title> 
    <script> 
    $(document).ready(function(){ 
     var myArray = []; 
     $('.amount').each(function(){   

     var textboxVal = $(this).val(); 
     //alert(textboxVal);   

     }); 

     var myCourse = []; 
     //dynamic course name 
     $('.course_name').each(function(){ 

      var course_name = $(this).val(); 
      //alert(course_name); 

      }); 

      if(textboxVal!="") 
      { 

       $.ajax({ 

        type : "POST",  
        url : "/invl_exams/cart",     
        cache : "false", 
        data :  {cname:course_name,priceBox:textboxVal},   
        success : function(result){  

        console.log(result);          

        } 


       }); 


      } 


    }); 
    </script> 
</head> 
</html> 
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> 

     <td>    
      <input type="hidden" name="cmd" value="_xclick"> 
      <input type="hidden" name="business" value="[email protected]">  
      <input type="hidden" name="upload" value="1"> 
      <?php    

       if(isset($cartDatas)) 
       { 
        $itm_no = 1; 
        $amt = 0;        
        foreach($cartDatas as $key=> $cartData) 
        { 

        $prices = $cartData['price'];  
        $prd_price = ltrim($prices,'$'); 
        $priceTotal = number_format((float)$prd_price, 2, '.', ''); 


      ?> 

       <input type="hidden" name="item_number" value="<?php echo $itm_no++;?>">   
       <input type="hidden" name="item_name" class="course_name" value="<?php echo $cartData['exam'];?>">  
       <input type="hidden" name="amount" class="amount" value="<?php echo $priceTotal;?>"> 
       <input type="hidden" name="shipping" value="shipping Address"> 
       <input type="hidden" name="quantity" value="<?php echo $cartData['orders'];?>">  

      <?php     

        $price = ltrim($prices,'$'); 
        $orders = $cartData['orders'];    
        $amt_Total = $price * $orders; 
        $amt += $amt_Total; 
        $amt_Total = number_format((float)$amt, 2, '.', ''); 

        ///$amt_Total = round($price * floatval($orders),2); 


       }    

      ?> 

       <input type="hidden" name="currency_code" value="USD">    
       <input type="hidden" name="amount" value="<?php echo $amt_Total;?>">      
      <?php 

       } 

      ?> 
      <input type="image" src="http://www.paypal.com/en_US/i/btn/x-click-but03.gif" name="submit" id="placeOrder">    
     </td> 
     </form> 
+0

Пройтись - http://stackoverflow.com/questions/34366218/how-to-get-value-from- динамически созданные-hidden- field-in-jquery – Shan

ответ

0

Вы можете сделать что-то вроде следующего:

$(function(){ 
    var amount = []; 
    var course = []; 
    $('.amount').each(function(){ 
    amount.push($(this).val()); 
    }); 
    $('.course_name').each(function(){ 
    course.push($(this).val()); 
    }); 
    console.log(amount.join(',')); //comma seperated value 
    console.log(course.join(',')) //comma seperated value 
}); 

DEMO

+0

Я работаю. большое спасибо –

0

Вы можете использовать JQuery и селекторы атрибутов, чтобы получить значение:

var item_name = $('input[name=\'item_name\']').val(); 
var amount = $('input[name=\'amount\']').val(); 

var result = item_name + ',' + amount; 

Теперь вы можете поместить это в обработчик щелчка.

0

Если входы заключены внутри элемента формы вы можете использовать это сериализовать значения формы ввода в объект JSON, а затем передать его ajax-вызов.

var postData = $("#enclosing_form_elm").serializeObject(); 

и в скрипте добавить ссылку на сериализации функцию объекта после того, как JQuery

$.fn.serializeObject = function() 
{ 
var o = {}; 
var a = this.serializeArray(); 
$.each(a, function() { 
    if (o[this.name] !== undefined) { 
     if (!o[this.name].push) { 
      o[this.name] = [o[this.name]]; 
     } 
     o[this.name].push(this.value || ''); 
    } else { 
     o[this.name] = this.value || ''; 
    } 
}); 
return o; 

};

Просто демо https://plnkr.co/edit/7maJAUSdakDuvVqXhnzi?p=preview

Благодаря Convert form data to JavaScript object with jQuery

Смежные вопросы