Migrated from Redmine #53 | Author: Steve Murphy
Status: Feedback | Priority: High, I’m very impatient | Created: 2017-10-06
I have been trying to use the same method for applying additionalFields using editBook as using book however I receive a failure saying it can’t find the additionalFields.
editBook works for services with no additionalFields, but returns error saying it wasn’t supplied for services that do have additional fields to edit
snippet used to book (works)
//javascript to build fields
var add_fields_ids = document.querySelectorAll(‘[id^=“add_field_id_”]’);
if (add_fields_ids.length > 0) {
var arr = Array.prototype.map.call( add_fields_ids, function( el, i ) {
return el.id;
});
var add_field_data = {
additional_field: []
};
for (i = 0; i < arr.length; i++) {
var field_id = arr[i].split('_')[arr[i].split('_').length-1];
var val = document.getElementById(arr[i]).textContent;
if (val == '') {
val = document.getElementById(arr[i]).value;
}
add_field_data.additional_field.push({
field_id : field_id,
field_val : val
});
}
}
//server-side PHP
$additional_fields = $_POST[‘additional_fields’];
$additionalFields = array();
foreach ($additional_fields as $key => $value) {
foreach ($value as $key => $value) {
$additionalFields[$value["field_id"]] = $value["field_val"];
}
}
$book = $client->book($eventId, $unitId, $date, $time, $clientData, $additionalFields, $count);
snippet used to editBook (fails)
//javascript to build fields
var add_fields_ids = document.querySelectorAll(‘[id^=“add_field_id_”]’);
if (add_fields_ids.length > 0) {
var arr = Array.prototype.map.call( add_fields_ids, function( el, i ) {
return el.id;
});
var add_field_data = {
additional_field: []
};
for (i = 0; i < arr.length; i++) {
var field_id = arr[i].split('_')[arr[i].split('_').length-1];
var val = document.getElementById(arr[i]).textContent;
if (val == '') {
val = document.getElementById(arr[i]).value;
}
add_field_data.additional_field.push({
field_id : field_id,
field_val : val
});
// alert(val);
// alert();
}
}
//server-side PHP
$additional_fields = $_POST[‘additional_fields’];
$additionalFields = array();
foreach ($additional_fields as $key => $value) {
foreach ($value as $key => $value) {
$additionalFields[$value["field_id"]] = $value["field_val"];
}
}
$editBook = $client->editBook($schedulerId, $eventId, $unitId, $clientId, $startDate, $startTime, $additionalFields);