Nisarg Bhavsar
Nisarg Bhavsar

Reputation: 956

Get value of hidden input to jquery

I am working in wordpress and I have created a custom plugin.In which I have get multiple data from the database and my code is like this.

<?php 
foreach($result as $res)
{    
?>
<input type="hidden" class="status" value="<?php echo $res->review_status; ?>" />
<button class="aprove" value="<?php echo $res->review_id; ?>">Aprove</button>
<?php 
}
?>

Now, I want to get hidden field value in jQuery. My jQuery code is like this:

 jQuery(".aprove").click(function(){
     var status = jQuery('.status').val();
     alert(status);
     });

When I click on button then it shows only first value of hidden field. For instance, the fist hidden value is 1 and second value is 0 then it display only fist value 1 for both button. So what shold I have to do to get different hidden value?

Upvotes: 1

Views: 1450

Answers (4)

Rohil_PHPBeginner
Rohil_PHPBeginner

Reputation: 6080

Try :

jQuery(".aprove").click(function(){
    jQuery('.status').each(function(){
        var status = jQuery(this).val();
        alert(status);
    });
});

.each will loop through all the classes and it will give alert every value of it.

JS Fiddel Demo

Updated

Updated Demo

Upvotes: 5

Suchit kumar
Suchit kumar

Reputation: 11859

you can use .map like this to get what you want:

   $(document).ready(function(){
    	  var status=[]
    	  jQuery(".aprove").click(function(){
    		  status = $(".status").map(function() {
    			   return $(this).val();
    			}).get();
    			alert(status);//array of values
    		     });
      });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <input type="hidden" class="status" value="0" />
	    <input type="hidden" class="status" value="1" />
	  <button class="aprove" value="">Aprove</button>

Upvotes: 0

Vishal Wadhawan
Vishal Wadhawan

Reputation: 1085

Here is your answer. for each button the value taken would be from the input element before the button element

 jQuery(".aprove").click(function(){
    var status = jQuery(this).prev('.status').val();
    alert(status);
 });

Upvotes: 1

Meenesh Jain
Meenesh Jain

Reputation: 2528

 var status = jQuery('.status').val();
 alert(status);

this will get the value of element first found on page and will return the result,

if you want all the input values use

jquery each() - https://api.jquery.com/jquery.each/

jQuery('.status').each(function(){
   alert($(this).val());
 });

// this will give you all the values you want, one by one

Upvotes: 1

Related Questions