如何在PHP中更新MYSQL字段而不刷新页面


How to update MYSQL field without refreshing page in PHP?

我希望使用文本而不是使用提交按钮更新MYSQL数据。管理员将从组合框中选择选项,然后单击保存以更新MYSQL记录。如何使用AJAX或jquery做到这一点?

我的编码:

<?php
include('config.php');
$per_page = 9; 
if($_GET)
{
$page=$_GET['page'];
}

//get table contents
$start = ($page-1)*$per_page;
$sql = "SELECT bookingID,eventinfo.eventTitle,boothAlias,testbook.bstatus,date, testbook.username, customer.companyName, customer.contactName from eventinfo, testbook, customer where testbook.username=customer.username AND testbook.eventID=eventinfo.eventID order by date desc limit $start,$per_page";
$rsd = mysql_query($sql);
?>
<form method="post" name="form">
<table width="800px">
    <?php
    //Print the contents
    while($row = mysql_fetch_array($rsd))
    {
        $id=$row['companyName'];
        $contactName=$row['contactName'];
        $eventTitle=$row['eventTitle'];
        //$phone=$row['phone'];
        $date=$row['date'];
        $status=$row['bstatus'];
        $booth=$row['boothAlias']
    ?>
    <tr><td style="color:#B2b2b2; padding-left:4px"><?php echo $id; ?></td><td><?php echo $contactName; ?></td>
    <td><?php echo $eventTitle; ?></td><td><?php echo $booth; ?></td><td><?php echo $date; ?></td><td><select name='status' id='status'>
        <option value='-1'>--Select--</option>
    <option value='0'>Approve</option>
    <option value='1'>Reject</option>
    <option value='2'>Pending</option>
    </select></td><td><a href=#>save</a></td>
    </tr>
    <?php
    } //while
    ?>
</table>
</form>
图片

这实际上是非常简单的使用jQuery。首先,必须创建另一个实际运行UPDATE代码的PHP脚本。我不确定您对AJAX请求了解多少,但您基本上可以将其视为浏览器在后台打开一个新选项卡,发送请求并使用JavaScript返回/解析响应。

所以,我会写一个PHP脚本,你可以请求(也许"update_field.php"或"update_field_ajax.php"),它做实际的更新。编写这个脚本,如果表单是从另一个页面提交(即它将有POST和GET变量,验证等)。主要有两个区别。首先,您将使用jQuery传入POST参数,其次,您不会返回HTML(如果您想要,您可以返回HTML -但如果您正在进行简单的更新,您实际上只需要某种成功或失败/错误消息响应)。我考虑将JSON作为响应类型。因此,PHP脚本由您来编写,您将像往常一样编写它。

接下来,您将使用jQuery从页面获取数据(GET/POST参数),并向您创建的PHP脚本发出请求。这也不是那么糟糕。我不确定你所说的"用文本代替提交按钮"是什么意思,除非你不想使用提交按钮,所以我将用一种抽象的方式来解释。为了使AJAX调用运行,必须有一些东西触发它。这将是页面上的一个事件,该事件将调用触发AJAX请求的函数。谷歌搜索有关jQuery事件的信息,但本质上,当事件被触发时,它会调用您定义的函数。当调用该函数时,我们可以使用jQuery的post()方法来创建AJAX post请求。这个方法调用看起来像这样:

jQuery.post('url of your script', {postVarOne: jQuery('some elt').val()}, function () {success function}, 'json');

jQuery的细节。

所以基本上写一个PHP脚本,你通常会返回一些东西,而不是HTML表示成功/失败或响应消息(除非你需要注入HTML到页面),然后使用jQuery。post(或者jQuery更通用)jQuery。使用您定义的GET/POST变量请求该脚本并解析响应。

最后,查看这些教程以获取更多信息/代码示例。

http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/

http://www.php4every1.com/tutorials/jquery-ajax-tutorial/