I have a form with multiple input fields, which are serialized and passed to a function via AJAX. Inside the function, I have the data in below form. I need to get Book-Keeper
, publish-companies
, and 1
as separate variables.
// $key = '_data'
// $values = {"name":"_data[Book-Keeper][publish_companies]","value":"1"}
Here's the function code.
function fnc_edit_roles(WP_REST_Request $request) {
$variables = $_REQUEST;
// Get all $_POST variables into $data[] array with key=>value
if( $variables ) {
while ( list( $field, $value ) = each( $_REQUEST )) {
if( $field !== '_nonce' ) {
$data[$field] = $value;
}
} // end while
} // end if
foreach( $data as $key=>$values ) {
// $key = '_data'
// $values = {"name":"_data[Book-Keeper][publish_companies]","value":"1"}
// How do I get 'Book-Keeper', 'publish_companies', and '1' into separate variables?
}
$result = array( 'msg' => $data, 'error' => false );
return json_encode( $result );
}
And here's how I get the inputs in HTML.
<form id="_user_roles_form" method="post" class="form-horizontal">
<div class="form-group row">
<label class="col-lg-6 control-label">Publish Companies</label>
<div class="col-lg-6">
<div class="btn-group" data-toggle="buttons">
<label class="btn btn-default active">
<input type="radio" name="_data[Book-Keeper][publish_companies]" value="1"/> True
</label>
<label class="btn btn-default ">
<input type="radio" name="_data[Book-Keeper][publish_companies]" value="0"/> False
</label>
</div>
</div>
</div>
</form>
And here's how I pass the inputted data to AJAX function.
var _data = jQuery('#_user_roles_form').serializeArray();
jQuery.ajax({
url: myAjaxUrl,
type: 'POST',
data: _data,
success: function( json ) {
var result = JSON.parse( json );
console.log( result.msg );
}
});
Long question short, how do I get Book-Keeper
and publish_companies
out of the string _data[Book-Keeper][publish_companies]
? key
or array_keys
doesn't work here...