Я использую podio-php Podio для их API для сохранения данных из формы в Podio, и у меня не было никаких проблем, кроме этой маленькой, но раздражающей. Когда я использую массив $visit_arr
, поля в Podio пусты, но когда я использую вручную созданный массив $visit_array_with_manual_values
, он работает нормально. Когда я печатаю массивы (print_r
), они идентичны. Я мало что знаю об объектах в PHP, но может ли array_push
-функция каким-то образом сделать $visit_arr
-массив менее пригодным для этой процедуры? Или проблема в другом? Спасибо.
// create array
$visit_arr = array();
// loop through visit items from form
$i = 0;
while ( $i < $num_visit_items ) {
$j = $i + 1;
if ( isset( $_POST['visit'.$j.''] ) ) {
array_push($visit_arr, $_POST['visit'.$j.'']);
}
$i++;
}
// alternative array (which works)
$visit_array_with_manual_values = array(123,456,789);
// create item in Podio
$fields = new PodioItemFieldCollection(array(
new PodioTextItemField(array(
"external_id" => "titel",
"values" => $firstname
)),
new PodioTextItemField(array(
"external_id" => "lastname",
"values" => $lastname
)),
new PodioAppItemField(array(
"external_id" => "visit",
"values" => $visit_arr
)),
new PodioTextItemField(array(
"external_id" => "description",
"values" => $description
))
));
$_POST
переменные, на которые вы пытаетесь сослаться, существуют? Несколько значений, отправленных с помощью формы, можно интерпретировать как массив, если они настроены правильно - см. здесь а>. Ваш код (если эти значения сообщения не существуют) будет прозрачно передавать пустой массив в качестве значений PodioAppItemField, где было бы более очевидно, если бы произошла ошибка (код состояния HTTP 400, возможно, неверный запрос), если какое-либо поле отсутствовало. - person Benjamin   schedule 03.08.2015