dzheka3d
@dzheka3d

Можно ли послать массив через serialize()?

Пытаюсь вот из такой формы послать данные, но $post_data всегда оказывается пустым. Я что-то не правильно делаю или это не возможно? И можно ли отправлять массивы (в данном случае step[]) таким способом?
<form name="form_add">
<input type="text" name="step[]">
<input type="text" name="step[]">
<input type="text" name="step[]">
<button type="submit">Отправить</button>
</form>
<script>
	$('form').on('submit', function(event){
		event.preventDefault();
		var inputs = $(this).serialize();
		$.post('/upload.php',
		{post_data: inputs},
		function(d){
			console.log(d);
		})
	});
</script>


на сервере делаю так:
$post_data = unserialize($_POST['post_data']);
var_dump($post_data);

получаю bool(false)
  • Вопрос задан
  • 505 просмотров
Решения вопроса 1
@Wol_fi
php, js, mysql, highload
serlialize в jQuery возвращает объект {name_инпута:value_инупта} от переданной ему форму. Вам не нужно делать unserialize на php. Сделайте var_dump($_POST['post_data']);
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@newpy
web-dev
Приведу пример, форма отправляется по нажатию на кнопку Submit
Форма:
<form id="form">
        <label>Name</label>
        <input type="text" name="name"/>
        <label>Age</label>
        <input type="text" name="age"/>
        <label>City</label>
        <input type="text" name="city"/>
        <button id="submit">Submit</button>
</form>
<pre id="debug">
      "This is test content. Learning AJAX."
</pre>

JavaScript
$('#submit').on('click', function(e) {
                e.preventDefault();
                $.ajax({
                    url: 'search.php',
                    type: 'POST',
                    dataType: 'json',
                    data: $('#form').serialize(),
                }).done(function (data) {
                    $('<h1>Ajax loaded</h1><div>' + data + '</div>').appendTo($('#debug'));
                });
            });


PHP:
$name = $_POST['name'];
$age = $_POST['age'];
$city = $_POST['city'];

$data = array('name' => $name, 'age' => $age, 'city' => $city);
echo json_encode($data);
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы