我想做的是使用ajax和php将数据库表数据放入索引页中的html表。
我的问题是数据没有显示。有人知道我的代码有什么问题吗?
的HTML:
<table id="myTable2"> <thead> <th>Name</th> <th>Age</th> <th>Gender</th> <th>Action</th> </thead> <tbody> </tbody> </table>
脚本:
<script type="text/javascript"> $(document).ready(function(){ $.ajax({ url: 'process.php', type: 'post', data: {tag: 'getData'}, dataType: 'json', success: function(data){ if(data.success){ $.each(data, function(index, record){ if($.is_numeric(index)){ var row = $("<tr />"); $("<td />").text(record.name).appendTo(row); $("<td />").text(record.age).appendTo(row); $("<td />").text(record.gender).appendTo(row); $("<td />").text(record.action).appendTo(row); row.appendTo('myTable2'); } }) } } }); $('#myTable2').dataTable({ "bjQueryUI": true, "sPaginationType": "full_numbers" }); }); </script>
process.php
<?php error_reporting(-1); ini_set('display_errors', 'On'); if(isset($_POST['tag'])){ try{ $host = "localhost"; $user = "root"; $pass = ""; $db = "test"; $dbc = new PDO("mysql:host=" . $host . ";dbname=" . $db, $user, $pass); $dbc->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "SELECT name, age, gender, action FROM viewtables"; $result = $dbc->prepare($sql); if(!$result->execute()) return false; if($result->rowCount() > 0) { $json = array(); while ($row = $result->fetch()){ $json[] = array( 'name' => $row['name'], 'age' => $row['age'], 'gender' => $row['gender'], 'action' => $row['action'] ); } $json['success'] = true; echo json_encode($json); } } catch (PDOException $e) { echo "Error: " .$e->getMessage(); } } ?>
至少,这是:
row.appendTo('myTable2');
需要是:
row.appendTo('#myTable2');
因为您在寻找id=myTable2,而不是<myTable2>标签。
id=myTable2
<myTable2>
但是,正如西奥多(Theodore)的评论中所述,您确实想要:
$('#myTable2 tbody').append(row);