更新记录而不刷新我网站上的所有页面

时间:2012-05-28 06:33:26

标签: php jquery ajax

如何在没有刷新页面的情况下更新记录,我有一个系统,我想要记录日期,在0和1之间更改其状态,打开或关闭功能。这是打开或关闭它的表格:

<table class="tablesorter" cellspacing="0">
    <thead>
        <tr>
            <th></th>
            <th>nane</th>
            <th>time</th>
            <th>out</th>
            <th>enter</th>
            <th>
                <div align="center">admin</div>
            </th>
            <th></th>
        </tr>
    </thead>
    <tbody>
        <?php $qu_req=mysql_query( "select * from `exit_request` where `date`='$date_now' order by id desc "); while($row_req=mysql_fetch_row($qu_req)){ ?>
        <tr>
            <td>
                <input type="checkbox">
            </td>
            <td><a href="show_exit_req.php?id=<?php print($row_req[0]); ?>" class="style9" onclick="NewWindow(this.href,'name','400','300','yes');return false"><?php print($row_req[1]); ?></a>
            </td>
            <td>
                <?php print($row_req[2]); ?>
            </td>
            <td>
                <?php print($row_req[6]); ?>
            </td>
            <td>
                <?php print($row_req[7]); ?>
            </td>
            <td>
                <div align="center">
                    <input name="<?php print(" chk_exit ".$row_req[0]); ?>" type="radio" value="0" <?php if($row_req[3]==0){print( 'checked');} ?>/>
                    <label>accept</label>
                    <input name="<?php print(" chk_exit ".$row_req[0]); ?>" type="radio" value="1" <?php if($row_req[3]==1){print( 'checked');} ?>/>
                    <label>not acept</label>
                </div>
            </td>
            <td>
                <input class="alt_btn" name="send" type="submit" value="رد الادارة" />
            </td>
        </tr>
        <? } ?>
    </tbody>
</table>

更新代码

if(isset($_POST['send'])){
    $qu=mysql_query("select * from `exit_request` ");
    while($row=mysql_fetch_row($qu)){
        $id=$row[0];
        $chk_str="chk_exit".$id;
        $chk_str=$$chk_str;
        //if($chk_str==1)
        mysql_query("update `exit_request` set `accept`='$chk_str' where id=$id");
        print('<meta http-equiv="refresh" content="0;URL=index.php" />');
    }
}

4 个答案:

答案 0 :(得分:0)

您可以使用AJAX请求发布您的表单序列化内容,如许多关于Web中的AJAX的教程中所见,如果您需要在请求发送到PHP后更新表单的内容尝试将JSON数据发送回表单并解析/更新表单,这样可以在不更改页面的情况下更新数据。

这个程序取决于你如何编写表单处理 您可以jQuery获取AJAX请求,请参阅文档以获取示例, 还可以看到json_encode用于表单处理的php端,jQuery UI来制作Dialogs。

答案 1 :(得分:0)

答案 2 :(得分:0)

您可以找到示例heresee this 网上有很多例子。 在stackoverflow How do i update mysql database with ajax and php in innerhtml

中提及此问题

答案 3 :(得分:0)

这是我为小型聊天室编写的一些代码,以便提交新的聊天帖子:

$("#shout").keypress(function(e) {
        if(e.keyCode == 13) {
            $.ajax({
                url: "http://example.com/api.php",
                contentType: "text/html; charset=ISO-8859-1",
                data: {
                    action: "shout",
                    message: $("#shout").val()
                },
                success: function() {
                    $("#shout").val("");
                }
            })
        }
    });

只要在带有id shout的输入字段上按Enter,就会从输入字段中获取值,将其放入AJAX请求中,然后发送它。此外,在成功发送后,它将清除输入字段。

行动&amp; data指定URL调用的GET参数(即http://example.com/api.php?action=shout&message=valueFromInputFieldGoeshere)。但您也可以使用帖子,只需查看.ajax()的选项。

希望这能让您了解如何将数据发送到服务器。

这是相应的代码,用于检查是否对聊天框发了新帖子,如果是,请加载它们。

$(document).ready(function() {
            var lastShout;

            // This one gets the timestamp of the last chat entry
            $.ajax({
                url: "http://example.com/api.php",
                contentType: "text/html; charset=ISO-8859-1",
                async: false,
                data: {
                    action: "lastshout"
                },
                success: function(data) {
                    lastShout = data + 0
                }
            })

            // This one loads the content of the chatbox containing the posts
            $.ajax({
                url: "http://example.com/api.php",
                contentType: "text/html; charset=ISO-8859-1",
                data: {
                    action: "getshouts"
                },
                success: function(data) {
                    $("#shouts").html(data);
                }
            })

            // This will be executed every 5 seconds. It takes the timestamp from the beginning, asks the server again for the latest timestamp
            // and then checks if the response timestamp is higher than the timestamp from the beginning.
            // If so, he'll pull the chatbox content and put it into the specified div
            setInterval(function() {
                $.ajax({
                    url: "http://example.com/api.php",
                    contentType: "text/html; charset=ISO-8859-1",
                    async: false,
                    data: {
                        action: "lastshout"
                    },
                    success: function(data) {
                        data = data + 0
                        if(data > lastShout) {
                            lastShout = data;

                            $.ajax({
                                url: "http://example.com/api.php",
                                data: {
                                    action: "getshouts",
                                    init: 1
                                },
                                success: function(data) {
                                    if(data != "") {
                                        $("#shouts").html(data);
                                    }
                                }
                            })
                        }
                    }
                })


            }, 5000)
        })