如何在不刷新PHP页面的情况下更新MYSQL字段?

时间:2011-10-06 03:02:42

标签: php mysql ajax combobox

我希望使用文本而不是使用提交按钮来更新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>

image

1 个答案:

答案 0 :(得分:1)

使用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.post的详细信息可以在http://api.jquery.com/jQuery.post/

找到

所以基本上像往常一样写一个PHP脚本,返回HTML以外的其他东西,表示成功/失败或响应消息(除非你需要将HTML注入页面),然后使用jQuery.post(或jQuery更通用jQuery.ajax方法)让你的浏览器请求你定义和解析响应的GET / POST变量脚本。

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

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

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