提交没有刷新

时间:2013-01-24 10:55:02

标签: php jquery html mysql

我正在尝试将数据提交到数据库而不使用jquery和php刷新页面 但我想我的代码中有一些错误,如果我不应用Jquery,它的工作效果很好: 贝娄是我正在使用的代码。

<!---Insert into database -->
<script type="text/javascript">
$(document).ready(function () {
    $('.chatbutton').click(function () {
        $.ajax({
            type: 'post',
            url: "insertchatmessages.php",
            success: function () {}
        });
    });
});
</script>
<!---Insert into database ends here  -->

</head>
<body>
<table class="chattable" id="chattable" border="0">
<tr><td><div id="load_tweets">

</div></td></tr>
<form id ="chatform" action="?" method="post"></td></tr>
<tr><td><input class ="chattext" type ="text" name="message"></td></tr>
<tr><td><input class="chatbutton" class="chatbutton" type="submit" value="send" name ="submit">
</div>
</table>

5 个答案:

答案 0 :(得分:3)

HTML(这是从您的代码派生的,但经过修改后可以在jsfiddle中使用):

<table class="chattable" id="chattable" border="0">
<tr>
    <td>
        <div id="load_tweets"></div>
    </td>
</tr>
<tr>
    <td>
        <form id ="chatform" action="/echo/html/" method="post"> <!-- your action should point to your php (insertchatmessages.php) -->
            <input type="hidden" name="html" value="This is sample text to show that this works!"/> <!-- for jsfiddle test only. remove this in your code. -->
            <input class ="chattext" type ="text" name="message" />
            <input class="chatbutton" class="chatbutton" type="submit" value="send" name ="submit" />
        </form>
    </td>
</tr>
</table>

jQuery的:

$(document).ready(function(){
    $('#chatform').submit(function(e){
        e.preventDefault();
        var $form = $(this),
        data = $form.serialize();

        $.ajax({
             data: data,
             type: $form.attr("method"),
             url: $form.attr("action"),
             success: function(data){
                  $("#load_tweets").html("<p>"+data+"</p>");
             }
        });
    });
});

工作示例:http://jsfiddle.net/darshanags/6vxMs/6/

注意:我对您的代码稍作修改以使其在jsfiddle上运行,您必须将其更改为使其在您的设置中正常工作。

答案 1 :(得分:3)

.chatbutton是一个提交按钮。单击它时,jQuery处理程序将触发,然后表单提交(这是浏览器的默认行为)。在您的jQuery脚本中,您必须调用preventDefault()

$('.chatbutton').click(function(e){
e.preventDefault();
// rest of your code

更好的是,为表单提交函数指定一个处理程序(但仍需要防止默认行为)。

答案 2 :(得分:0)

使用submit jquery函数。

$('#chatform').submit(function() { });

完整的JS代码

<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript">

$(document).ready(function ()
{
    $('#chatform').submit(function (e)
    {
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: "random.php",
            success: function (response)
            {
                //do after response.
            }
        });
    });
});

</script>

答案 3 :(得分:0)

jQuery serialize会有所帮助

<script type="text/javascript">
$(document).ready(function () {
    $('.chatbutton').click(function (e) {
        e.preventDefault();
        $.ajax({
            data: $('chatform').serialize(),
            type: 'post',
            url: "insertchatmessages.php",
            success: function () {}
        });
    });
});
</script>

答案 4 :(得分:0)

简单用户e.preventDefault()在你的onclick调用开始时,当你想要停止默认行为时使用它:

<script type="text/javascript">
$(document).ready(function (e) {
    $('.chatbutton').click(function () {
        e.preventDefault();
        $.ajax({
            type: 'post',
            url: "insertchatmessages.php",
            success: function () {}
        });
    });
});
</script>