<form action="index.php" method="POST" id="form"> <input type="text" name="guest" id="guest_name" class="textbox"/><br /> <textarea name="textarea" id="text" class="textarea"></textarea/><br /> <input type="submit" id="submit" class="submit"/><br /> </form>
Jquery
$.post("events.php?action=send", { data : $("#form").serialize() }, function(data, error) { }
Протестировано, если в столбце DATA имеются данные:
echo var_dump($_POST['data']);
Я получаю это:
name=blabla&comment=blabla1
И тогда, когда я это сделаю
echo $_POST['guest'];
Ничего не возникает, это NULL.
Вопрос:
Что я сделал не так? Почему не заполняется POST-гость? если он находится в DATA, а метод формы – POST.
Благодаря!
Передайте сериализованную строку в качестве параметра данных в $ .post не объект, параметр данных которого является сериализованной строкой
$.post("events.php?action=send", $("#form").serialize() , function(data, error) { }
Теперь вы сможете получить доступ к $_POST['guest']
т. Д.
<?php parse_str($_POST['data'], $data); print_r($data);
Вы делаете это неправильно. Попробуйте это
$.post( "events.php?action=send", $("#form").serialize() , function(data, error) {} );
В php end доступ к массиву $ _POST, как это
echo $_POST['guest']; echo $_POST['textarea'];
Удалите ключ данных, который вам не нужен. $("#form").serialize()
создаст строку запроса в сообщении, доступ к которой вы сможете легко получить, когда вы получите доступ к поданной форме.
Рекомендации
JQuery. Сериализовать
Из того, что вы написали, похоже, что $ _POST ['data'] ['guest'] будет иметь то, что вы ищете.