Php 在tablesorter插件中是否可能有下拉框?

Php 在tablesorter插件中是否可能有下拉框?,php,ajax,tablesorter,Php,Ajax,Tablesorter,我有一个使用php、ajax和tablesorter插件完美生成的表。现在,我想将一些输入字段放入下拉框中,以便用户可以选择需要更改的选项。所有这些都需要保存到数据库中。以下是我到目前为止的情况: $('#getInfo').live('click', function() { //clear table before search $("#inventoryUpdate tbody tr").remove(); $('#messageInv').html('Please

我有一个使用php、ajax和tablesorter插件完美生成的表。现在,我想将一些输入字段放入下拉框中,以便用户可以选择需要更改的选项。所有这些都需要保存到数据库中。以下是我到目前为止的情况:

    $('#getInfo').live('click', function() {
//clear table before search
    $("#inventoryUpdate tbody tr").remove();
    $('#messageInv').html('Please be patient, this might take a minute');
$.ajax({
    type: "POST",
    async: true,
    url: "getInventory.php",
    dataType: "json",
    data: ({skuStart: $("#startSkuRange").val(), skuEnd: $("#endSkuRange").val(), processDate: $("#processDate").val(),
           source: $("#source").val()}),
    success: function(data){
        $('#messageInv').hide(); 
        //console.log(data);
                    var myselectoptions = ''; 
        if(data.isbn2 === null){
                $("#inventoryUpdate").append('<tr><td>No Records Found</td></tr>');
            }else{
        for(var x=0;x<data.isbn2.length;x++)
                {
          $.each(data.defect2[x], function(index, val)
            {
             myselectoptions += '<option value="'+data.defect2[x][index].option+'">'+data.defect2[x][index].option+'</option>';
            });
        $("#inventoryUpdate").append('<tr><td id="tableSKU">'+data.sku[x]+'</td><td id="tableISBN">'+data.isbn2[x]+
                 '</td><td><input type="text" id="tableQuantity" value="'+data.quantity[x]+
                 '"/></td><td><select id="tableDefect">'+myselectoptions+
                 '"</select></td><td><input type="text" id="tableSource" value="'+data.source[x]+
                 '"/></td><td><input type="text" id="tableFeature" value="'+data.feature[x]+
                 '"/></td><td><input type="text"  id="tableLocation" value="'+data.location[x]+
                '"/></td><td><input type="text" id="tableProcessDate" value="'+data.processDate[x]+
                '"/></td><td><input type="text" id="tableBookType" value="'+data.booktype[x]+
                '"/></td><td><input type="text" id="tableCreatedBy" value="'+data.created[x]+
                '"/></td><td><input type="text" id="tableModifiedBy" value="'+data.modified[x]+
                '"/></td></tr>');
                                    }
        $("#inventoryUpdate").trigger("update");
            } // end of else statement
    } // end of success function
});// end of ajax call
}); // end of inventory update function
$('getInfo').live('click',function(){
//搜索前清除表格
$(“#inventoryUpdate tbody tr”).remove();
$('#messageInv').html('请耐心等待,这可能需要一分钟');
$.ajax({
类型:“POST”,
async:true,
url:“getInventory.php”,
数据类型:“json”,
数据:({skuStart:$(“#startSkuRange”).val(),skuEnd:$(“#endSkuRange”).val(),processDate:$(“#processDate”).val(),
来源:$(“#source”).val()),
成功:功能(数据){
$('#messageInv').hide();
//控制台日志(数据);
var myselectoptions='';
如果(data.isbn2==null){
$(“#inventoryUpdate”).append('未找到任何记录');
}否则{

对于(var x=0;x如果我读对了,请将
替换为

至于动态填充select,可以用几种不同的方法来处理。使用ajax,您可以通过更改现有值来获得select值

data.defect[x]
转换为多维对象,因此您可以输出一个数组,该数组将在后端转换为JSON,这样您的对象看起来就像

var myselectoptions = '';
   $.each(data.defect[x], function(index, val)
          {
             myselectoptions += '<option value="'+data.source[x][index].option+'">'+data.source[x][index].option+'</option>';
          });
'"/></td><td><select id="tableDefect">'+myselectoptions+'....
defect[{“option”:“value”},{“option”:“value”},{“option”:“value”},{“option”:“value”}]

其中,当您在继承部分构建表时,您将在该对象上循环。您将基本上执行与现在相同的操作..除了。您的选择如下所示

var myselectoptions = '';
   $.each(data.defect[x], function(index, val)
          {
             myselectoptions += '<option value="'+data.source[x][index].option+'">'+data.source[x][index].option+'</option>';
          });
'"/></td><td><select id="tableDefect">'+myselectoptions+'....
var myselectoptions='';
$.each(data.defect[x],函数(index,val)
{
myselectoptions+=''数据源[x][index].option+'';
});
“/>”+myselectoptions+“。。。。

现在这是一个纯粹的概念,我还没有测试过它,它可能需要一些调整来满足您的具体需求,但这是一些方法的核心概念之一,可以处理您想要做的事情,适合您当前正在做的事情,而无需对其进行太多修改。

源代码是什么?在我的ajax后端中,我使用了defect2我的数组的defect_id,源是否变成了这些?还有,索引是什么,我需要增加它([index][x])?x基于现有的for循环。索引与它相似,但将应用于每个循环迭代,而不是for循环迭代,因此,如果您有10个选项要列出,则该组缺陷对象的索引将为0-9。至于后端。但是,您现在将缺陷定义为字符串,这与javascript类似,但是它是一个字符串,用于javascript或对象的输出。经过一点调整,我基本上能够让它正常工作。感谢您为我指明了正确的方向。我现在在设置所选变量方面遇到了问题,有什么想法吗?新代码如下: