2

我想要在文本框中输入文本并单击该文本的按钮以显示在表单上方的 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> 

聊天.PHP

<?php
    echo $_POST['chattext'];
?>

查询:

$(function () {

    $('button').on('click', function(e) {
        $.post('chat.php', $(this).serialize(), function(data) {
            $('.chatdiv').html(data); 
        });
        e.preventDefault();
    });

}); // end ready
4

3 回答 3

8

您正在序列化button

$(this).serialize()

不是表格。将其更改为:

$("#chatform").serialize()

为了将来参考,当您遇到此类小问题时,请查看网络下的 Web 浏览器开发人员工具。它将向您显示哪些数据正在发布到 Web 服务器。

于 2013-06-07T15:50:23.923 回答
2

您没有引用 中的表格serialize(),该行应该是:

$('#chatform').serialize()

于 2013-06-07T15:51:15.083 回答
1

您需要将事件侦听器绑定到您的表单才能使用$(this).serialize();

$('form#chatform').on('submit', function(e) {
于 2013-06-07T15:51:13.693 回答