以Ajax的方式访问数据库

一:以Ajax的方式显示数据

我们都知道,如果用Ajax程序去加载一个动态页,则加载的实际上是这个动态页执行完毕后生成的静态HTML代码字符串。

1.以原有的格式显示数据

<?php
header("Content-type: text/html; charset=gb2312");
include(‘conn.php‘);
$result=$conn->query("Select * From lyb limit 4 ");
while($row=$result->fetch_assoc()){
     echo "<tr><td>".$row[‘title‘]."</td>";
     echo "<td>".$row[‘content‘]."</td>";
     echo " <td>".$row[‘author‘]."</td>";
     echo " <td>".$row[‘email‘]."</td>";
     echo "<td>".$row[‘ip‘]."</td></tr>";
}
?>
<html>
<head>
    <title>以Ajax方式显示数据</title>
 <script src="jquery.min.js"></script>
 <script>
$(function(){            //页面载入时执行
    $.post("10-1.php", function(data){
            $("#disp").append(data);
          //  alert(data);        //仅作测试,看服务器端数据是否已传来
        });
        } )
</script>
</head>
<body>

<h2 align="center">以Ajax方式显示数据</h2>
<table border="1" width="100%"><tbody id="disp"><tr bgcolor="#e0e0e0">
        <th>标题</th> <th>内容</th> <th>作者</th>
        <th>email</th> <th>来自</th>
    </tr></tbody></table>

</body>
</html> 

  2.以自定义的格式显示数据。

2.1返回JSON格式的字符串,将JSON数据以需要的格式显示。

<?
header("Content-type: text/html; charset=gb2312");
include(‘conn.php‘);
$result=$conn->query("Select * From lyb limit 4 ");
echo ‘[‘;
$i=0;
while($row=$result->fetch_assoc()){?>
     {title:"<?= $row[‘title‘] ?>",
        content:"<?= $row[‘content‘] ?>",
        author:"<?= $row[‘author‘] ?>",
        email:"<?= $row[‘email‘] ?>",
        ip:"<?= $row[‘ip‘] ?>"}
<?
if($result->num_rows!=++$i) echo ‘,‘;    //如果不是最后一条记录
}
echo ‘]‘
?>

2.2按指定的特殊字符串格式输出一条记录,将返回的数组转换成字符串 implode(‘|‘,$row);然后使用split(‘|‘)分割该字符串得到一个数组。

<?
header("Content-type: text/html; charset=gb2312");
include(‘conn.php‘);
$result=$conn->query("Select * From lyb limit 4 "); 

  $row=$result->fetch_assoc();
  $str=implode(‘|‘,$row);//将数组各元素用“|”连接起来
  echo $str;        //输出用“|”分隔的特殊字符串

?>
<html>
<head>
    <title>分割一条记录中的数据</title>
    <script type="text/javascript" src="jquery.min.js"></script>
    <script>
$(function(){            //页面载入时执行
   $.get("10-3.php", function(data) {
      str=data.split("|");
      var tr = "<tr><td>" + str[1]+ "</td><td>" + str[2]+ "</td><td>" + str[3] + "</td><td style=‘color:red‘>" + str[4] + "</td><td>" + str[5] + "</td></tr>";
      $("#disp").append(tr);
  });
})    

</script>
</head>
<body>

    <h3 align="center" style="margin:4px">分割显示一条记录中的数据</h3>

    <table border="1" width="95%" id="disp"><!--载入10-1.asp的容器元素-->
      <tr bgcolor="#e0e0e0">
        <th>标题</th> <th width="100">内容</th> <th width="60">作者</th>
        <th>email</th> <th width="80">来自</th>
    </tr>

</table>

</body>
</html> 

二、以Ajax方式查询数据

1、无刷新查询数据的实现

HTML代码如下:

<form action="#" method="get">
                 <div style="border:1px solid gray; background:#eee;padding:4px;">
                     查找信息:请输入关键字 <input name="keyword" id="keyword" type="text">
                     <select name="sel" id="sel">
                         <option value="sceNo">景点编号</option>
                         <option value="sceName">景点名称</option>
                         <option value="sPrice">景点价格</option>
                         <option value="author">发布人员</option>
                     </select>
                     <input type="button" id="Submit" value="查询">
                     <a href="index1.php">添加记录</a>
                     <a href="show_scenery.php">返回</a>
                 </div>
             </form>
            <div id="disp"></div>
             <script type="text/javascript">
                     $(function(){
                         $("#Submit").click(function(){
                             var keyword = $("#keyword").val();//得到下拉菜单中的选中项的value值
                             var sel = $("#sel").val();
                             alert(keyword);
                             if (keyword != 0) {
                                 $.get("search_scenery.php",{keyword:keyword,sel:sel,sid:Math.random()},function(data){
                                     $("#disp").html(data);
                                 });
                             } else{$("#disp").html("搜索内容不能为空")};
                         });
                     });
             </script>

php文件:

$result = mysql_query("select * from `scenery`",$conn);

 $keyword =(trim($_GET[‘keyword‘]));
 $sel=($_GET[‘sel‘]);//获取选择的查询类型

      /*$keyword=trim($_GET[‘keyword‘]);//获取输入的关键字
     $sel=$_GET[‘sel‘];//获取选择的查询类型*/
     $sql="select * from `scenery`";
     if ($keyword<>"") {
         $sql=$sql ." where $sel like ‘%$keyword%‘";    //构造查询语句
     }
     $result=mysql_query($sql) or die(‘执行失败‘);
     if (mysql_num_rows($result)>0) {
         echo "<p>关键字为“ $keyword ”,共找到".mysql_num_rows($result)." 条记录</p>";
         echo "<a href=‘show_scenery.php‘>返回</a>";
  ?>

         <!DOCTYPE html>
         <html lang="en">
         <head>
             <meta charset="UTF-8">
             <title>查询结果</title>
         </head>
         <body>

        <form action="?del=1" method="post">
             <table border="1">
                 <tr bgcolor="#ccc" >
                     <th>景点编号</th>
                     <th>景点名称</th>
                     <th>景点描述</th>
                     <th>景点价格</th>
                     <th>发布人员</th>
                     <th>发布时间</th>
                     <th>删除</th>
                     <th>更新</th>
                 </tr>
                 <?php
                 while ($row = mysql_fetch_assoc($result)) {
                     ?>
                     <tr>

                         <td><?= $row[‘sceNo‘]?></td>
                         <td><?= $row[‘sceName‘]?></td>
                         <td><?= $row[‘sceDesc‘]?></td>
                         <td><?= $row[‘sPrice‘]?>元/人</td>
                         <td><?= $row[‘author‘]?></td>
                         <td><?= $row[‘createtime‘]?></td>
                         <td><input type="checkbox" name="selected[]" id="" value="<?= $row[‘sceNo‘]?>"></td><!-- 删除的复选框 -->
                         <td><a href="edit_scenery.php?sceNo=<?= $row[‘sceNo‘]?>">更新</a></td>
                     </tr>
                     <?php
                 }
             }else echo "<script>alert(‘没有搜索到任何记录!‘);location.href=‘show_scenery.php‘</script>";
             ?>
             <tr bgcolor="#ddd">
                 <td></td>
                 <td></td>
                 <td></td>
                 <td></td>
                 <td></td>
                 <td></td>
                 <td><input type="submit" value="删 除"></td><!-- 删除按钮 -->
                 <td></td>
             </tr>
         </table>
         </form>
         <p>共有<?= mysql_num_rows($result) ?>条记录 </p>

时间: 2024-10-10 06:53:38

以Ajax的方式访问数据库的相关文章

ADO.NET 连接方式和非链接方式访问数据库

//连接方式访问数据库的主要步骤 1.创建连接对象(l链接字符串) 2.创建命令对象(设置Command对象的几个属性值) 3.打开连接 4.发送命令 5.处理数据 6.关闭连接 //非链接方式访问数据库 1/创建连接对象 2.创建数据适配器对象 3.打开连接 4.发送命令 5.关闭连接

非链接方式访问数据库--查询的数据集用Dataset来存储。

private void Button_Click_1(object sender, RoutedEventArgs e) { //非链接方式访问数据库, //1创建连接对象(连接字符串) using (SqlConnection conn = new SqlConnection(SQLHelper.ConnectionString)) { //2.创建数据适配器对象 using (SqlDataAdapter sda = new SqlDataAdapter("select * from St

srping-data学习笔记一(传统方式访问数据库实现和弊端分析)

spring-data是一系列项目的集合,涵盖访问关系型.非关系型等各种数据源的子项目 spring data jpa 关系型 spring data mongo db spring data redis spring data solr 全文检索,基于lucene 其他 使用原始JDBC方式操作数据库 1)创建Maven项目 maven工程的目录结构 添加依赖 <dependency> <groupId>mysql</groupId> <artifactId&g

ASP.NET MVC- EF返回连接池用ADO.NET方式访问数据库

用习惯了ADO.NET的方式去访问数据库,虽然ADO.NET写的代码没有EF简洁,可是也并不麻烦.而且EF在进行多表查询的那种方式是,EF需要先去数据库里定义外键,再进去一次代码生成,然后才能用INCLUDE方法进行多表关联查询.我不太喜欢那样,还不如老老实实写做SQL语句. 所以ADO.NET 不能完成不用掉.那么怎么将EF和ADO.NET结合. 其实很简单,只要将EF的连接池返回成ADO.NET的SQLCONNECTION.然后就可以用ADO.NET的方式来写了. protected voi

php-面向对象的方式访问数据库

<?php //面向对象访问数据库 //造对象 $dx=new MySQLi("localhost","root","123","nation"); //判断连接是否成功 /*if(mysqli_connnect_error()) { echo "连接失败"; exit(); //die("连接失败"); }*/ !mysqli_connect_error() or die(&qu

JAVA传统方式访问数据库

使用idea进行操作: 1)创建maven项目 选择maven仓库,选择自己maven安装位置,user settings file为安装maven下conf文件夹内的settings.xml . local repository是本地仓库,设置好后点击next 设置项目名称 2)添加依赖 pom.xml下添加依赖包 3)JDBC连接 不建议将配置写入代码中  所以在resources下创建db.properties 此处mysql8.0以上版本的driver为com.mysql.cj.jdbc

封装类的方式访问数据库(封装字符串、json)

<?php class DBDA { public $host="localhost";//服务器地址 public $uid="root";//用户名 public $pwd="";//密码 public $conn;//连接对象 //操作数据库的方法 //$sql代表需要执行的SQL语句 //$type代表SQL语句的类型,1代表查询,0代表增删改 //$db代表要操作的数据库名称 //如果是查询,返回二维数组 //如果是其他语句,返回

Mybatis基于注解的方式访问数据库

1. 使用方式:在Service层直接调用 1 package com.disappearwind.service; 2 3 import org.springframework.beans.factory.annotation.Autowired; 4 import org.springframework.stereotype.Repository; 5 import org.springframework.stereotype.Service; 6 7 import com.disappea

面向对象的方式访问数据库

造对象 判断连接是否出错(两种方式) 写sql语句 执行sql语句 从结果集对象中读取数据 循环输出等 $db = new MySQLi("localhost","root","","z-stu"); //方法一 if(mysqli_connect_error()){ echo "连接错误"; exit; } //方法二 !mysqli_connect_error() or die("连接失败!&