我正在使用DataTables,这是我的情景:
1)我有一个下拉菜单,其中包含一些用户名和正确的ID;
2)我有一个空的DataTable;
3)我想检测用户的ID,从drop drown菜单中选择一行,使用DataTables的data:
属性将其传递给server_processing.php(DB查询),并在数据表中显示DB query的结果。
下拉代码:
<select id="selezione_user" name="selezione_user" class="select2 form-control">
<option value="">Seleziona</option>
<?php $query=mysql_query("SELECT user_id,nome FROM user ORDER BY nome",$conn);
while($row=mysql_fetch_array($query)){
echo "<option value='$row[user_id]'>$row[nome]</option>";
}?>
</select>
DataTable代码(HTML):
<table class="table table-striped" id="prova">
<thead>
<tr>
<th>User</th>
<th>Comune</th>
<th>Mail</th>
<th>Stato</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
DataTable(JS)代码
$(document).ready(function() {
var oTable = $('#prova').dataTable( {
"processing": true,
"serverSide": true,
"ajax": {
"url": "scripts/server_processing.php",
"data": {
"user_id": null //set to show empty DataTable
}
},
});
$('#selezione_user').change(function() {
aoData.push({
"user_id": this.value
})
});
});
但上面的代码不起作用,这个问题让我发疯,我希望有人会帮助我。 谢谢大家。 贾科莫。
修改
我使用删除data:
并以这种方式更改DataTables(JQuery)函数解决了我的问题:
$('#selezione_centri').change(function() {
var valore = this.value;
var string = ('scripts/server_processing.php?id_professionista='+valore);
table.ajax.url(string).load();
table.reload();
});
答案 0 :(得分:0)
我认为你应该检查一行
echo "<option value='$row[user_id]'>$row[nome]</option>";
尝试将其更改为
echo "<option value='".$row["user_id"]."'>".$row["nome"]."</option>";
这在这里有所解释:Accessing arrays whitout quoting the key,需要引用php数组键。这只是一个远景!
为了更精确的调试(如果这还不够),你应该提供php代码。