2012-10-23 51 views
0

我有一個表中的一行3場佈局像這樣:通過SQL動態更改下拉列表並計算總和?

Job   Pay Grade  Cost 
<Select>  <Select>  <Calculation> 

我有一個SQL表上面其中的信息,例如:

Job   Pay Grade  Cost 
Techie   1    100 
Techie   2    200 
Engi   2    300 
Engi   3    400 
Engi   4    500 

我需要做的是能夠從下拉列表中選擇一個作業,然後根據與SQL數據庫中的作業相匹配的薪酬等級選擇框進行更改。然後它會顯示與選擇相關的成本。

我怎麼能去這是我有點卡住

+0

你看的JavaScript,jQuery的阿賈克斯還是?或者您可能需要告訴您卡在哪裏的障礙是什麼? – stackoverflowery

+0

有很多選擇。一種是使用表格並提交。然後,從SQL查詢中獲取輸出。其次是使用ajax來監聽事件(獲取下拉值),然後將值提交給SQL查詢。 – stackoverflowery

+0

我沒有真正開始任何事情,因爲我不知道從哪裏開始 – K20GH

回答

1

你需要通過$就張貼選擇工作,然後在成功函數填充下拉列表如下:

function selectHandler (event, ui) 
     { 
     var id = event.target.id; 
     $.ajax({ 
       type: "POST", 
       url: "/php/get_quantity_type.php", 
       dataType:"json", 
       data: { ingridient : ui.item.value}, 
       success: function(data){$("#"+id+"_t").empty(); $.each(data,function(index,value) {$("#"+id+"_t").append('<option value="' + value + '">' + value + '</option>');})} 
       }); 
     } 

這個例子從選擇列表中選擇一個材料名稱,通過$ ajax()將它發佈到一個php腳本中,並將其寫入一個新的下拉列表,該列表的id基於觸發事件的id。如果你需要的PHP代碼只問:)

你的工作列表綁定到上述事件處理程序:

("#job_list").bind("select",selectHandler); 

此代碼的帖子數據「/php/get_quantity_type.php」,並passess結果在成功屬性中聲明的函數;

+0

謝謝 - 但我有點不清楚如何讓我的作業下拉列表發佈到該功能,然後生成分數下拉的內容 – K20GH

1

首先在選擇職位時創建一個Ajax請求。內請求的成功回調將生成html爲薪酬等級從JSON響應選擇從服務器

jQuery的選項

$('select.jobTitle').change(function(){ 
    var $titleSelect=$(this); 
    $.getJSON('processJobGrades.php', { jobTitle : $(this).val() }, function(response){ 
     var gradesOptionsHtml=''; 
     /* create options html from json response */ 
     $.each(response, function(i, item){ 
      gradesOptionsHtml+='<option value="'+item.grade+' data-cost="'+item.cost+'">'+item.grade+'</option>'; 
     }); 
     $titleSelect.parent().find('select.jobGrade').html(gradesOptionsHtml);  
    }); 
}); 

IN processJobGrades.php收到$_GET['jobTitle']。做數據庫查找並創建json發回。

PHP

$outputArray=array(); 

/*in loop over DB data:*/ 
$outputArray[]= array('grade'=>$row['grade'], 'cost'=>$row['cost']); 

/*Output final array as JSON*/ 
echo json_encode($outputArray); 

jQuery的變化對paygrade選擇處理程序來獲取cost

$('select.jobGrade').change(function(){ 
    var cost=$(this).find(':selected').data('cost') 
    $(this).parent().find('input.jobCost').val(cost); 
}) 
+0

謝謝但不知道這對我有什麼幫助?我需要2個下拉菜單,其中1個是工作,然後是根據工作變化的薪酬等級 – K20GH

+0

行。我錯過了例子中的重複職位。將工作起來ajax解決方案 – charlietfl

+0

更新的解決方案爲ajax – charlietfl