我有一個jQuery的移動應用程序,頁面加載時,從數據庫中讀取數據,並填充用戶特定的數據,如他們喜歡的地址頁面上的選擇框。 我實現了一個ajax腳本,刪除所選的運行良好的選項。但我需要找到一種方法來刷新選擇框,而無需重新加載頁面。 我收集AJAX是我需要去的方式,但我不知道從哪裏開始。 我假設我需要重新運行讀取數據庫的php文件,然後使用返回的數據並填充選擇框的JavaScript。刷新動態選擇框,無需重新加載頁面
的index.php(上)
<?php
$show_faves_pass=true;
$show_faves_cctr=true;
include('../includes/favourites.inc');
?>
favorites.inc
$js_str='';
if ($show_faves_addr){
// Postgres sql statement here
$addr_json=json_encode($addr_rows);
$js_str.="var fave_addresses=$addr_json;\n";
}
if ($show_faves_cctr){
// Postgres sql statement here
$cctr_json=json_encode($cctr_rows);
$js_str.="var fave_costcentres=$cctr_json;\n";
}
if (strlen($js_str)>0){
echo "<script type='text/javascript'>\n$js_str\n</script>\n";
}
的index.php(第二部分)
//populate favourites pickers
function findFave(arr,key,val){
var found=null;
$.each(arr,function(i,v){
if (v[key]==val){
found=v;
}
});
return found;
}
var pass_fave_sel=$('select#pass_fave_picker');
$.each(fave_passengers,function(i,fave){
pass_fave_sel.append("<option value='"+fave.passenger_details_id+"'>"+fave.passenger_nickname.replace("'","\'")+"</option>");
});
var cctr_fave_sel=$('select#cctr_fave_picker');
$.each(fave_costcentres,function(i,fave){
cctr_fave_sel.append("<option value='"+fave.cost_centre_id+"'>"+(fave.cost_centre_code+" ("+fave.cost_centre_nickname+")").replace("'","\'")+"</option>");
});
希望這一切都有道理,任何幫助都將不勝感激, 感謝提前堆!
乾杯這一點。但是因爲我通過刪除記錄來修改數據庫,那麼我是否需要再次讀取數據庫才能獲取正確的值,然後刷新元素作爲最後一步? – Jamesil
從數據庫中刪除記錄時,請使用ajax成功狀態,並使用jQuery從選擇框中刪除元素。不要使用完成狀態,因爲在這種情況下,您無法知道是否所有數據都已從數據庫中成功刪除。 – Gajotres
感謝堆,我沒有想過這樣做。雖然我將在不久的將來添加一個添加地址部分,因此在他們選擇其中一個剛添加的地址後,它會填充表單中的字段。所以我需要在這種情況下閱讀數據庫。 – Jamesil