因为几天我遇到一个奇怪的问题,试图使用DataTables分页让我发疯。
奇怪的是,如果我通过Firebug粘贴我的页面上打印的数据,我可以分页,但这不可能在页面上显示,所以很明显我的Ajax调用存在问题。
你可以在这里看到:
http://live.datatables.net/zoxuhewa/1/edit
在这里,如果你删除" odd"行,结果是分页的,但是,正如您从结果中看到的那样,这不会发生在我的网页中。
让我告诉你我在Pastebin中做了什么(我希望他们在这里允许):
这就是我的HTML的样子:
<div class="row">
<div class="col-xs-12">
<div class="box">
<div class="box-header">
<h3 class="box-title">Data Table With Full Features</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<table id="example1" class="table table-bordered table-striped">
<thead>
<tr class="row">
<th>ID</th>
<th>Nome</th>
<th>Cognome</th>
<th>Indirizzo</th>
<th>Email</th>
<th>Tipo contatto</th>
<th>Telefono 1</th>
<th>Telefono 2</th>
<th>Telefono 3</th>
<th>Azioni</th>
</tr>
</thead>
<tbody id="tab-0">
</tbody>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
这就是用PHP编写的JSON数据
if ($result = $this->hookUp->query($this->sqlA)) {
while ($row = mysqli_fetch_array($result, MYSQLI_BOTH)) {
$id = $row['id'];
$data[] = array("id" => "<td>" . $row['id'] . "</td>",
"nome" => "<td id='nome:" . $id . "' contenteditable='true'>" . $row['nome'] . "</td>",
"cognome" => "<td id='cognome:" . $id . "' contenteditable='true'>" . $row['cognome'] . "</td>",
"indirizzo" => "<td id='indirizzo:" . $id . "' contenteditable='true'>" . $row['indirizzo'] . "</td>",
"email" => "<td id='email:" . $id . "' contenteditable='true'>" . $row['email'] . "</td>",
"tipo_contatto" => "<td id='tipo_contatto:" . $id . "' contenteditable='true'>" . $row['tipo_contatto'] . "</td>",
"telefono_1" => "<td id='telefono_1:" . $id . "' contenteditable='true'>" . $row['telefono_1'] . "</td>",
"telefono_2" => "<td id='telefono_2:" . $id . "' contenteditable='true'>" . $row['telefono_2'] . "</td>",
"telefono_3" => "<td id='telefono_3:" . $id . "' contenteditable='true'>" . $row['telefono_3'] . "</td>",
"edit" => "<td>" . '<a id="' . $row['id'] . '" class="delete" href="#"><i class="fa fa-fw fa-remove"></i></a>
<a id="' . $row['id'] . '" class="edit" href="#"><i class="fa fa-fw fa-edit"></i>' . "</a></td>");
$response['cliente'] = $data;
$fp = fopen("../lista.json", "w");
fwrite($fp, json_encode($response));
fclose($fp);
}
}
这是附加JSON数据的方式:
$.getJSON("lista.json", function (json) {
if (json.cliente) {
for (i = 0; i < json.cliente.length; i++) {
var obj = json.cliente[i];
var output = "<tr class='row'>";
for (var key in obj) {
name = key;
value = obj[key].toString();
output += value;
}
output += "</tr>";
console.log(output);
$("#tab-0").append(output);
}
}
[...] close brackets.
当然,HTML放在代码的更广泛部分(整个页面)中。
让我知道我能做些什么,我真的疯了。感谢。