2014-05-09 46 views
0

我與數據表工作,這是我的情景:
填充jQuery的數據表的下拉和PHP

1)我有一個下拉與一些用戶的名字和他們正確的ID菜單;
2)我有一個空的DataTable;
3)我想檢測用戶ID從drop淹沒菜單中選擇一行,使用DataTables的data:屬性將它傳遞到server_processing.php(DB查詢),並將數據庫查詢的結果顯示回數據表。

代碼下拉:

<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> 

代碼數據表(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> 

代碼數據表(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    
}) 
}); 
}); 

但上面的代碼不工作和這個問題正在讓我瘋狂,我希望有人會幫助我。 感謝所有。 Giacomo。

編輯

我解決了使用消除data:並以這種方式改變數據表(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

我認爲你應該檢查該行

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代碼。

+0

你是對的。我糾正PHP的問題,我得到了同樣的錯誤。我可以發佈server_processing.php,但它是一個很長的腳本,它工作正常(如果我靜態傳遞一個user_id。我認爲錯誤與aoData.push鏈接。 –

+0

如果你嘗試'oTable.fnDraw();' aoData.push – ReGdYN

+0

我解決了我的問題,我編輯了我的帖子,介紹了一種工作方式。 –