利用Ajax加载数据

  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>加载数据</title>
<script src="bootstrap/js/jquery-1.11.2.min.js"></script>
</head>

<body>
<h1>加载数据</h1>

<select id="nation">
</select>

</body>
<script type="text/javascript">
//一般把这段代码写在网页最下面,但是加上这句话可将该段写在网页中任意位置
$(document).ready(function(e) {    //ready表示当页面加载完成后
    $.ajax({
        url:"sel.php",
        dataType:"TEXT",
        success: function(data){
            var hang = data.split("|");
            var str = "";
            for(var i=0;i<hang.length;i++){
                var lie = hang[i].split("^");
                str = str+"<option value='"+lie[0]+"'>"+lie[1]+"</option>";
            }
            $("#nation").html(str);
        }
    });
    
});
</script>
</html>

  其处理页面为:

<?php
require_once "DBDA.class.php";
$db = new DBDA();
$sql = "select * from minzu";
$arr = $db->query($sql);
//将数据转化成字符串
$str = "";
foreach($arr as $v){
    $str = $str.implode("^",$v)."|";
    }
$str = substr($str,0,strlen($str)-1);
echo $str;

  或可在DBDA中扩展一个方法,使其直接返回一个字符串:

//返回字符串的方法
    public function strquery($sql,$type=0){
            $db = new MySQLi($this->host,$this->uid,$this->pwd,$this->dbname);
            $result = $db->query($sql);
            if($type){
                return $result;
            }else{
                $arr = $result->fetch_all();
                $str = "";
                foreach($arr as $v){
                    $str = $str.implode("^",$v)."|";
                    }
                $str = substr($str,0,strlen($str)-1);
                return $str;
        }
    }

 这样处理页面只需直接调用即可:

<?php
require_once "DBDA.class.php";
$db = new DBDA();
$sql = "select * from minzu";
echo $db->strquery($sql);

 

posted @ 2018-02-05 16:44  23滴雨  阅读(543)  评论(0编辑  收藏  举报