Ar乄Dug 2021-03-18 12:31 采纳率: 50%
浏览 489

ajax请求返回的数据显示不出来

 出现问题

PHP代码

<?php

header("Content-Type:text/html;charset=utf-8");//如果没有这句话,后面的汉字显示是乱码;


//连接数据库  使用mysqli模式


$username="root";

$userpass="123456";

$servername = "localhost";

$dbname = "design";

$conn = "";//数据库变量


//连接数据库函数,参数分别是数据库地址,用户名,密码,数据库的名称

function connectdb($server,$name,$pwd,$databasename)

{

    //创建连接 ,连接数据库,并判断是否连接成功

    $conn = new mysqli($server,$name,$pwd,$databasename);

    // 检测连接

    if ($conn->connect_error)

    {

        die("link db failire: " . $conn->connect_error);

        echo "connect database [" . $server . " ]  failire <br/>";

        return $conn;

    }

    else

    {

        //echo "connect database [" . $server . "]  successful <br/>";

        return $conn;

    }

}

//检测表是否存在

function check_table_is_exist($sql,$find_table)

{

    $row=mysql_query($sql);

    $database=array();

    $finddatabase=$find_table;

    while ($result=mysql_fetch_array($row,MYSQL_ASSOC))

    {

    $database[]=$result['Database'];

    }

    unset($result,$row);

    mysql_close();

    /*开始判断表是否存在*/

    if(in_array($find_table,$database))

    {

    return true;

    }

    else

    {

    return false;

    }

}

//create new table

function createnewtable($conn)

{

    // 使用 sql 创建数据表

    $sql = "CREATE TABLE MyGuests (

    id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

    firstname VARCHAR(30) NOT NULL,

    lastname VARCHAR(30) NOT NULL,

    email VARCHAR(50),

    reg_date TIMESTAMP

    )";

     if ($conn->query($sql) == TRUE)

     {

         echo  "Table MyGuests created successfully <br/>";

    }

    else

    {

        echo  "create database table error: " . $conn->error . " <br/>";



        return false;

    }

}



function insertrecord($conn,$tablename)

{

    //echo -e "\r\n";

    //插入一条数据

    $sql = "INSERT INTO MyGuests (firstname, lastname, email)

    VALUES ('John', 'Doe', 'john@example.com')";



    if ($conn->query($sql) == TRUE)

    {

        print "insert one record successful <br/>";



    } else

    {

        echo  "Error: " . $sql . "<br/>" . $conn->error;

        echo  "\r\n";

    }

    $sql="";

    //插入多条数据

    $sql .= "INSERT INTO MyGuests (firstname, lastname, email)

    VALUES ('Mary', 'Moe', 'mary@example.com');";

    $sql .= "INSERT INTO MyGuests (firstname, lastname, email)

    VALUES ('Julie', 'Dooley', 'julie@example.com')";

    if ($conn->multi_query($sql) == TRUE) {

        echo  "insert records successful. <br/>";

    } else {

        echo  "Error: " . $sql . "<br>" . $conn->error;

    }

    return true;

}


/*
function showtabledata($conn,$sql)

{

    $conn->query($sql);

}

*/


//删除某行数据
function del_data($conn,$sql)

{

    print $sql . "</br>";

    if($conn->query($sql)==true)

    {

        echo "delete records successful </br>";

    }

    else

    {

        echo "delete records failire </br>";

    }

}


function show_alldata_fromtable($servername,$username,$userpass,$dbname,$tablename)

{

    $conn = mysqli_connect($servername,$username,$userpass,$dbname);

    if(mysqli_connect_errno($conn))

    {

        echo "connect mysql failed " . mysqli_connect_error();

        return;

    }



    //echo "connect successful<br>";

    //第二步设置相应的字符编码

    //$mysqli->set_charset("utf8");

    //$setting = 'set names utf8';

    //mysqli_query($conn,$setting);

    //echo "query successful <br>" ;//. $conn . $setting;



    //第三步进行查询

    //从 表中选取所有的列。
    $sql = 'SELECT * FROM MyGuests';

    //执行查询语句,返回result为数据内容
    if($result = mysqli_query($conn,$sql))

    {

        //得到查询的记录的个数,
        $rowcount = mysqli_num_rows($result);

        //111echo "return {$rowcount} records <br>";




        for($i = 0;$i <$rowcount;$i ++)

        {

            //按顺序一次读取一条记录,保存到sqldata中
            $sqldata = mysqli_fetch_assoc($result);


            echo

            "<center>

            <table>

            <tr>

                <td>".$sqldata['id']."</td>

                <td>".$sqldata['firstname']."</td>

                <td>".$sqldata['lastname']. "</td>

                <td>".$sqldata['email']. "</td>

                <td>".$sqldata['reg_date']. "</td>

            </tr>

            </table>

            </center>";

        }

        //从结果集中取得行,然后释放结果内存:
        mysqli_free_result($result);

    }



    //第五步把结果写到缓存文件

    $file = "sqlcache.txt";

    //通过序列化表单值,创建 URL 编码文本字符串。
    $msg = serialize($sqldata);

    //echo $msg;

    //打开文件或者 URL
    //"w" 	写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。
    $fp = fopen($file,"w");

    //写入文件
    fputs($fp,$msg);

    //关闭一个打开文件
    fclose($fp);

}





//执行代码

$conn = connectdb("localhost","root","123456","design");

//createnewtable($conn);

//$sql = "DELETE FROM myguests ";

//del_data($conn,$sql);

//insertrecord($conn,'MyGuests');

//$conn->close();

show_alldata_fromtable("localhost","root","123456","design",'',$conn);

$conn->close();



?>

 前端代码

<body ng-controller = 'main'>

    <div class="">
        <center>
        <table class="table table-bordered table-striped">
            <thead>
                <tr>
                    <td>学号</td>
                    <td>姓</td>
                    <td>名</td>
                    <td>邮件地址</td>
                </tr>
            </thead>
            <tbody id="tbody"></tbody>
        </table>
        </center>
    </div>

    <button class="update">更新</button>


</body>

<script type="text/javascript">

      $.ajax({
        type: 'POST',
        url: 'testdb.php',
        data: {"id":"1","firstname":"John","lastname":"Doe","email":"john@example.com"},
        success: function (data) {

            //这里采用了一个非常笨的方法
            //使用正则表达式 将其中的  '}' 更换成 '} ' ,增加了一个空格,
            var reg = new RegExp('}',"g");
            var data = data.replace(reg,'} ');
            //根据 空格  分割成多个对象,
            var a = data.split(' ');
            var trStr = '';//动态拼接table
            for (var i = 0; i < data.length-1; i++) {
                //a[i]=a[i].replace('{','');
                trStr += '<tr class="example">';
                trStr += '<td width="15%">' +  data[i].id + '</td>';
                trStr += '<td width="15%">' +  data[i].firstname + '</td>';
                trStr += '<td width="15%">' +  data[i].lastname + '</td>';
                trStr += '<td>' + data[i].email + '</td>';
                //trStr += '<td>' + JSON.parse(a[i]).reg_date + '</td>';
                trStr += '</tr>';
            }


            $("#tbody").html(trStr);
            //设置id为tbody的tbody内容为trStr


            
        }
    });
</script>
  • 写回答

2条回答 默认 最新

  • fewuliu 2021-03-18 14:17
    关注

    估计是没拿到数据,可以在 success 的回调里面打个 debugger

    评论

报告相同问题?

悬赏问题

  • ¥20 C# TCP服务端,客户端退出后,不断有数据进来
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?