2012-10-23 50 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