我希望在文本框中输入文本并单击该文本的按钮以显示在表单上方的div中但我不断收到php错误undefined index: chattext
HTML:
<div class="chatdiv"></div>
<form id="chatform" action="chat.php" method="post">
<textarea name="chattext"></textarea>
<button>Send</button>
</form>
CHAT.PHP
<?php
echo $_POST['chattext'];
?>
JQUERY:
$(function () {
$('button').on('click', function(e) {
$.post('chat.php', $(this).serialize(), function(data) {
$('.chatdiv').html(data);
});
e.preventDefault();
});
}); // end ready
答案 0 :(得分:8)
您正在序列化button
:
$(this).serialize()
不是表格。将其更改为:
$("#chatform").serialize()
为了将来参考,当您遇到这样的小问题时,请在网络下查看您的网络浏览器开发工具。它将显示正在向Web服务器发布的数据。
答案 1 :(得分:2)
您没有引用serialize()
中的表单,该行应为:
$('#chatform').serialize()
答案 2 :(得分:1)
您需要将事件侦听器绑定到表单才能使用$(this).serialize();
$('form#chatform').on('submit', function(e) {