2015-09-11 3 views
0

У меня есть этот вар property в UI части и я сделатьНедействительный аргумента для Еогеаспа() PHP []

var property = JSON.stringify(valueToPush1); печатают []

так что я знаю его пустым я все еще послать это значение в PHP через Ajax в моем PHP я сделать

$property = ($_POST['property']); $jsonproperty = json_decode(stripslashes($property), true);

Я все еще проверить свойство, если пусто, так что я

print_r($jsonproperty);

и Аякса ответ, как ожидается, пусто, как этот []

Так что я сделал это, чтобы избежать Invalid argument supplied for foreach() я проверить, если переменная пуста, если пуст я не буду продолжать. Я делаю проверку, как показано ниже.

if (!empty($jsonproperty)) { 
    foreach($jsonproperty as $value) {} 
} 

Но все-таки я получаю Invalid argument supplied for foreach() in в строке foreach($jsonproperty as $value) {}

  1. Как проверить, если переменная пуста в PHP, особенно если print_r является []
+0

check $ jsonproperty - это массив или не используется функция is_array для получения дополнительной информации http://php.net/manual/fr/function.is-array.php –

+0

после проверки? Это похоже, если массив не пуст? – guradio

+1

'$ jsonproperty = json_decode ('[]'); print_r ($ jsonproperty); 'prints' Array() 'и передача $ jsonproperty для foreach не вызывает предупреждения. Поскольку вы получили '[]' как вывод (т. Е. Это все еще строка, содержащая json-массив) и предупреждение, в вашем скрипте должно быть что-то не так, что вы нам не показали. – VolkerK

ответ

1

Вы звоните JSON.stringify дважды : один раз, когда вы назначаете property, а затем при добавлении property к параметру FormaData. Поскольку вы только декодируете его один раз в PHP, вы получаете строку, а не массив.

Просто позвоните JSON.stringify один раз, когда вы положите его на номер formData.

+0

счастливое кодирование Barmar – guradio

Смежные вопросы