Post to form via php with an array
I am using sirportly for my support and I have the ability to submit forms remotely via html, but I am trying to integrate this into wordpress and so I want to post this form from a plugin via curl / php. Task i I need to send array objects:
for example, the basic HTML source form generated by sirportly contains the following:
<input type='text' name='ticket[name]' id='form26-name' />
<input type='text' name='ticket[email]' id='form26-email' />
<input type='text' name='ticket[subject]' id='form26-subject' />
<textarea name='ticket[message]' id='form26-message'></textarea>
I know basic form elements like name = name, name = email, etc. I can do the following:
//create array of data to be posted
$post_data['firstName'] = 'Name';
$post_data['action'] = 'Register';
//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
how do i do this given that the items should be posted as "ticket [name]" and not just "name"
EDIT / UPDATE - ANSWER
thanks to the answers below I came up with a solution, my problem was not accessing the data from the array as I was accessing it in a different way (but from the array anyway), but encoded it correctly in the post request, this is what I ended up with (note that I I use gravity forms to get data:
//numbers in here should match the field ID in your gravity form
$post_data['name'] = $entry["1"];
$post_data['email'] = $entry["2"];
$post_data['subject'] = $entry["3"];
$post_data['message']= $entry["4"];
foreach ( $post_data as $key => $value) {
$post_items[] = 'ticket[' . $key . ']' . '=' . $value;
}
$post_string = implode ('&', $post_items);
I just had to change the for loop to wrap the extra ticket [and] parts around the key to send the message
source to share