任何人都可以解决这个jQuery $ .post

时间:2014-03-17 11:46:00

标签: javascript php jquery

我有一个这样的表格(已添加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"); 
} 

我只想在提交表单时,页面不刷新,数据插入数据库。任何人都可以帮我解决?请,谢谢。抱歉英语不好。

1 个答案:

答案 0 :(得分:4)

您必须添加return false;,以便浏览器能够理解&#39;它不应该直接提交表格。

$(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标识符添加#