У меня есть этот вар property
в части пользовательского интерфейса, и я делаю
var property = JSON.stringify(valueToPush1);
это печатает []
так что я знаю, что он пуст, я все еще отправляю это значение в php через ajax в моем php, я делаю
$property = ($_POST['property']);
$jsonproperty = json_decode(stripslashes($property), true);
Я все еще проверяю свойство, если пусто, поэтому я делаю
print_r($jsonproperty);
и ответ Ajax, как ожидается, пустой, как это []
Так что я сделал, чтобы избежать Invalid argument supplied for foreach()
я проверяю, является ли переменная пустой, если пусто, я не буду продолжать. Я делаю проверку, как показано ниже.
if (!empty($jsonproperty)) {
foreach($jsonproperty as $value) {}
}
Но все же я получаю Invalid argument supplied for foreach() in
в соответствии foreach($jsonproperty as $value) {}
print_r
является []
Ты звонишь JSON.stringify
дважды: один раз, когда вы назначаете property
и позже при добавлении property
к FormaData
параметр. Поскольку вы декодируете его только один раз в PHP, вы получаете строку, а не массив.
Просто позвони JSON.stringify
один раз, когда вы кладете его в formData
,
Других решений пока нет …