用下拉和PHP填充jQuery DataTables

时间:2014-05-09 21:26:25

标签: javascript php jquery datatable

我正在使用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();
}); 

1 个答案:

答案 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代码。