?
Solved

pass input array with jquery

Posted on 2014-02-25
8
Medium Priority
?
890 Views
Last Modified: 2014-02-26
I am not really sure how to explain my question.  I am trying to pass the values of the inputs "payment_invoices[]" with jquery to my php page.  It only passes the one with the value of 53.  

<input type="hidden" name="payment_invoices[]" value="53">
<input type="hidden" name="payment_invoices[]" value="54">
<input type="hidden" name="payment_invoices[]" value="55">


$('.payment_button').click(function() { //admin pay affiliate
							 
	
	    var payment_invoices = $("input[type=hidden][name='payment_invoices[]']").val(); //This is what I do cannot figure out
	
   
        $('#affiliate_payment_box').show().html('<img src="/loading_25_black.gif"/>');
   
        var url = "/admin_pay_affiliate.php";
   
        $.post(url, {paymentInvoices: payment_invoices} ,function(data) {
        $('#affiliate_payment_box').html(data).show();        
	     })

   	
});

Open in new window

0
Comment
Question by:Luey
8 Comments
 
LVL 58

Expert Comment

by:Gary
ID: 39887557
var payment_invoices = $("[name='payment_invoices[]']").serialize()
0
 
LVL 14

Expert Comment

by:quizwedge
ID: 39887575
Your JavaScript looks good at a quick glance. Are you having trouble with the PHP side or are you getting an error on the JavaScript side?
0
 

Author Comment

by:Luey
ID: 39887616
@quizwedge - I have never had to pass an array so far so I am kind of shooting in the dark.  I am not getting a javascript error.  On the php side i am only getting the first input. The one with the value of 53.


@Catal -  I put in serialize() and now it returns this in my php page. payment_invoices%5B%5D=53&payment_invoices%5B%5D=54&payment_invoices%5B%5D=55

I am not sure how to get it into my php array.  I am hoping to end up with an array that looks like this.  Array ( [0] => 53 [1] => 54 [2] => 55 )
0
What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

 
LVL 58

Accepted Solution

by:
Gary earned 2000 total points
ID: 39887642
Ok use

payment_invoices = $("[name='payment_invoices']").serializeArray()


On your php page loop thru the array like so.

foreach($_POST['payment_invoices'] as $item){
      // value is stored in $item['value'];
}
0
 

Author Comment

by:Luey
ID: 39887675
@Cathal
The only thing I am confused about now is extracting what I need with the foreach() loop.
I really just need each invoice number when I loop through the array but I am not having much luck.
When I look at the array with print_r() it looks like this.

Array ( [0] => Array ( [name] => payment_invoices[] [value] => 53 ) [1] => Array ( [name] => payment_invoices[] [value] => 54 ) [2] => Array ( [name] => payment_invoices[] [value] => 55 ) )

But I am still confused on how to extract my invoice number in the loop. Thanks for your help.
0
 
LVL 58

Expert Comment

by:Gary
ID: 39887825
I'm confused why you are confused
To get the invoice numbers all you need to do is

foreach($_POST['payment_invoices'] as $item){
      // value is stored in $item['value'];
}


In the loop $item['value'] will give each value of the posted payment_invoices array - that is 53, 54 and 55
When you do print_r() that is showing the array. The foreach is giving you the values.
0
 
LVL 45

Expert Comment

by:Chris Stanyon
ID: 39888600
You don't need to pass an array to your $.post() function - you pass the data:

var paymentInvoices = $("[name='payment_invoices[]']").serializeArray();
var url = "/admin_pay_affiliate.php";

$.post(url, paymentInvoices ,function(data) {
   $('#affiliate_payment_box').html(data).show();
});

Open in new window

Then in PHP, to get the info, you just loop through $_POST['payment_invoices']

foreach($_POST['payment_invoices'] as $info):
	echo $info;
endforeach;

Open in new window

0
 

Author Closing Comment

by:Luey
ID: 39889261
Got it now Cathal,
Thanks for the help.

Duh
<?php
 foreach($_POST['paymentInvoices'] as $item){
      // value is stored in $item['value'];
        echo $item['value'];
}
?>
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction HyperText Transfer Protocol (http://www.ietf.org/rfc/rfc2616.txt) or "HTTP" is the underpinning of internet communication.  As a teacher of web development I have heard many questions, mostly from my younger students who have come to t…
In this article you'll learn how to use Ajax calls within your CodeIgniter application. To explain this, I'll illustrate how to implement a simple contact form to allow visitors to send you an email through your web site.
The viewer will learn how to dynamically set the form action using jQuery.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)
Suggested Courses

755 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question