有人能解决这个问题吗?jQuery $ . post

can anyone fix this. jQuery $.post

本文关键字:jQuery post 问题 解决      更新时间:2023-09-26

我有一个这样的表单(已经添加了jquery最新)

echo '<form name="chat" id="chat" action="/pages/guicsdl.php" method="post">'; 
echo bbcode::auto_bb('chat', 'text'); 
echo '<textarea rows="3" name="text" id="text"></textarea><br/>'; 
echo '<input type="hidden" name="trave" value="'.$trave.'" /><input type="submit" name="submit" value="Gửi" /></form>';

和js

$(document).ready(function() { 
    $("chat").submit(function(){ 
        $.post('/pages/guicsdl.php', $("#chat").serialize() ); 
    }); 
});

和guicsdl.php文件

if(isset($_POST['submit'])) { 
    $noidung = functions::check($_POST['text']); 
    mysql_query("INSERT INTO `status` SET `user_id`='".$user_id."', `text`='".$noidung."', `time`='".time()."'"); 
    mysql_query("UPDATE `users` SET `tongchat`= tongchat+1 WHERE id = '".$user_id."' ");
    $trave = isset($_POST['trave']) ? base64_decode($_POST['trave']) : '';     
    header("Location: $trave"); 
} 

我只希望当我提交表单,页面不刷新,数据插入到数据库。有人能帮我修吗?谢谢,谢谢。对不起,我的英语不好。

您必须添加return false;,以便浏览器'理解'它不应该直接提交表单。

$(document).ready(function(){ 
    $("#chat").submit(function(){ 
        $.post('/pages/guicsdl.php', $("#chat").serialize() ); 
        return false;
    });
});

另一种方法(我自己更喜欢)是告诉事件不要做它的默认行为。

$(document).ready(function(){ 
    $("#chat").submit(function(ev){  // note the extra parameter
        ev.preventDefault();
        $.post('/pages/guicsdl.php', $("#chat").serialize() ); 
    });
});

Wilmer还注意到您在选择聊天表单时忘记为jQuery标识符添加#