更新记录而不刷新/离开页面

时间:2012-04-25 14:34:55

标签: php jquery mysql ajax

我有一个带有表格的PHP页面。

该表填充了MySQL数据库中的记录。 表格(住房)的一个字段可以包含两个值:01

当学生为housed时,该字段的值为1,否则为0。 在表格中,我想使用带有O / I的 JQUERY UI按钮(如开关)。

单击该按钮时,需要在MySQL表中更新该值,并且应该在JQUERY UI按钮右侧显示图标("checked"),如果值为1,则图标应该消失

我认为我需要ajax才能做到这一点? 谁能告诉我这是否可以做到?也许它是如何做到的?

1 个答案:

答案 0 :(得分:4)

是的,可以做到

此处的示例http://openenergymonitor.org/emon/node/107

  
      
  1. 在您的服务器上创建一个名为api.php的php脚本
  2.   
  3. 复制并粘贴以下示例并保存:
  4.   
<?php 

  //--------------------------------------------------------------------------
  // Example php script for fetching data from mysql database
  //--------------------------------------------------------------------------
  $host = "localhost";
  $user = "root";
  $pass = "root";

  $databaseName = "ajax01";
  $tableName = "variables";

  //--------------------------------------------------------------------------
  // 1) Connect to mysql database
  //--------------------------------------------------------------------------
  include 'DB.php';
  $con = mysql_connect($host,$user,$pass);
  $dbs = mysql_select_db($databaseName, $con);

  //--------------------------------------------------------------------------
  // 2) Query database for data
  //--------------------------------------------------------------------------
  $result = mysql_query("SELECT * FROM $tableName");          //query
  $array = mysql_fetch_row($result);                          //fetch result    

  //--------------------------------------------------------------------------
  // 3) echo result as json 
  //--------------------------------------------------------------------------
  echo json_encode($array);

?>

然后

  
      
  1. 在同一目录中创建一个名为client.php的html脚本,其中包含以下内容:
  2.   
<!---------------------------------------------------------------------------
Example client script for JQUERY:AJAX -> PHP:MYSQL example
---------------------------------------------------------------------------->

<html>
  <head>
    <script language="javascript" type="text/javascript" src="jquery.js"></script>
  </head>
  <body>

  <!-------------------------------------------------------------------------
  1) Create some html content that can be accessed by jquery
  -------------------------------------------------------------------------->
  <h2> Client example </h2>
  <h3>Output: </h3>
  <div id="output">this element will be accessed by jquery and this text replaced</div>

  <script id="source" language="javascript" type="text/javascript">

  $(function () 
  {
    //-----------------------------------------------------------------------
    // 2) Send a http request with AJAX http://api.jquery.com/jQuery.ajax/
    //-----------------------------------------------------------------------
    $.ajax({                                      
      url: 'api.php',                  //the script to call to get data          
      data: "",                        //you can insert url argumnets here to pass to api.php
                                       //for example "id=5&parent=6"
      dataType: 'json',                //data format      
      success: function(data)          //on recieve of reply
      {
        var id = data[0];              //get id
        var vname = data[1];           //get name
        //--------------------------------------------------------------------
        // 3) Update html content
        //--------------------------------------------------------------------
        $('#output').html("<b>id: </b>"+id+"<b> name: </b>"+vname); //Set output element html
        //recommend reading up on jquery selectors they are awesome 
        // http://api.jquery.com/category/selectors/
      } 
    });
  }); 

  </script>
  </body>
</html>