У меня есть два текстовых поля ввода html и две кнопки.
Первая кнопка сохраняет пары значений из двух полей ввода в массиве. Вторая кнопка отправляет этот массив со всеми парами входных значений в файл php, а файл php сохраняет все эти значения в базе данных. Пользователь может вводить значения так, как только может, нет предела.
<input type="text" id="field1" name="field1" /> <input type="text" id="field2" name="field2" /> <button id="notizeValues">Notize</button> <button id="sendToServer">Save</button>
Мой вопрос: как сервер может получить доступ к этим данным? Я стараюсь:
var values = []; $('#notizeValues').click(function (){ var value1 = $('#field1').val(); var value2 = $('#field2').val(); values.push({'value1': value1 , 'value2': value2 }); }); $('#sendToServer').click(function (){ var sendValues = values; $.post("achieveAdminAktion.php",{values: sendValues }, function(data){ $("#serverResponse").html(data); }); });
Теперь идет код php-файла, но я получаю все ошибки времени. Для этого решения я получаю предупреждение: json_decode() expects parameter 1 to be string, array given
и ошибками в функции эха:
isset($_POST['values']){ $values = json_decode($_POST['values'], true); foreach ($values as $json) { ....save value in database.... } echo $values; // nothing }
Это только один пример из множества примеров, которые я пробовал, но ничего не работает. Как я могу решить эту проблему? Как я могу получить доступ к этим данным в php-файле и как я могу пройти через json-массив и сохранить все эти пары значений в базе данных.
$.post()
не пересылает JSON-переменные на сервер, поэтому вызов json_decode
в PHP не нужен.