0

首先感谢这个问题https://stackoverflow.com/questions/14792014/select-option-which-were-just-appended-with-jquery

当从 sql 结果中拆分数据的选项值在一个页面中有两个选择时,我遇到了另一个问题。

这里我的代码作为默认页面

    <div>
    Warehouse Product
  <br><input type="text" id="wh" readonly/>WHK</br>
    </br>
    Nomor Rak
         <br><input type="text" id="posisi" readonly/></br>
    Product Kategori
         <br><select id="pkategori">
         <option selected = "selected" value = "option1">-Kategori Produk-</option>
                <?php
                $q = mssql_query("SELECT DISTINCT ProductCategory from tblMstProductUHT1"); 

                while ($r = mssql_fetch_array($q)){
                echo "<option value='$r[ProductCategory]'>$r[ProductCategory]</option>";
            }?>
            </select>
        </br>
    Nama Produk
        <br><select id="pname">
        <option selected = "selected" value="option1" >-Nama Produk-</option>
        <?php
                $q = mssql_query("SELECT DISTINCT ProductName from tblMstProductUHT1"); 

                while ($r = mssql_fetch_array($q)){
                echo "<option  value='$r[ProductName]'>$r[ProductName]</option>";
            }?>
         </select>
        </br>
    Kode Produksi
    <br><input type='text' id="pdate"></br>
    Line/FM
    <br><input type='text' id="line"></br>
    Nomor Palet
         <br><input type="text" id="pnumber"/>
         </br>
    Nomor Seri Produk
    <br><input type='text' id="seri"></br>
    Quantity(Carton)
    <br><input type='text' id="quantity"></br>
    <button id="save">Save</button>
    <button id="edit">Edit</button>
    <button id="view">View</button>
    <button id="delete">Delete</button>
    </div>

你看到有两个选择选项<select id="pkategori"><select id="pname">。现在对于编辑按钮,我使用 ajax 调用可用数据,如下所示

    $("#edit").click(function(){
    posisi = $("#posisi").val();
    $.ajax({
            type:'POST',
            url: "aksi.php",
            data: "op=edit&posisi="+posisi,
            cache: false,
            success: function(msg){
    if(msg=="error"){
    $(".status").html("<font color='##480000'><strong> Data tidak ditemukan..! </strong></font>");
    }
    else{
    //karna di server pembatas setiap data adalah |
        //maka kita split dan akan membentuk array
        data = msg.split("|");            
    //masukkan ke masing-masing textfield
     var r = [data[0]];
    options = [{id:0, value:r}];
    for(var i = 0; i < options.length; i++) {
        var data = options[i];
        var option = $('<option id="pkategoriOption_' + data['id'] + '" class="pkategori" value="' + data['value'] + '">' + data['value'] + '</option>');
        $('#pkategori').append(option);     
    }
$("#pkategori .pkategori:first").prop('selected', true);

    var s = [data[1]];
    options = [{id:0, value:s}];
    for(var i = 0; i < options.length; i++) {
        var data = options[i];
        var option = $('<option id="pnameOption_' + data['id'] + '" class="pname" value="' + data['value'] + '">' + data['value'] + '</option>');
        $('#pname').append(option);     
    }
$("#pname .pname:first").prop('selected', true);

     $("#pdate").val(data[2]);
     $("#pnumber").val(data[3]);
     $("#seri").val(data[4]);
     $("#quantity").val(data[5]);
     $("#line").val(data[6]);  
     //hilangkan status dan animasi loading
     $(".status").html("");
     $(".loading").hide();
     }
     }
    });
    });

url: "aksi.php",我使用“|”拆分数据时。根据我首先链接的问题。我成功附加选项值<select id="pkategori">并将其设置为默认选择。

但是当我对第二个选项使用相同的代码时,<select id="pname">它会导致错误并且我拆分的数据不显示。所以我卡住了,有什么问题?

4

1 回答 1

1

实际上你的链接有答案。在您的代码中,您只有类似的 var。意思是“数据”,它会导致冲突。jquery 会混淆绑定数据,所以你只需更改data = msg.split("|");为另一个名称变量。

您的代码将如下所示

$("#edit").click(function(){
    posisi = $("#posisi").val();
    $.ajax({
            type:'POST',
            url: "aksi.php",
            data: "op=edit&posisi="+posisi,
            cache: false,
            success: function(msg){
    if(msg=="error"){
    $(".status").html("<font color='##480000'><strong> Data tidak ditemukan..! </strong></font>");
    }
    else{
    //karna di server pembatas setiap data adalah |
        //maka kita split dan akan membentuk array
        da = msg.split("|"); // it can be another variable name           
    //masukkan ke masing-masing textfield
     var r = [da[0]];
    options = [{id:0, value:r}];
    for(var i = 0; i < options.length; i++) {
        var data = options[i];
        var option = $('<option id="pkategoriOption_' + data['id'] + '" class="pkategori" value="' + data['value'] + '">' + data['value'] + '</option>');
        $('#pkategori').append(option);     
    }
$("#pkategori .pkategori:first").prop('selected', true);

    var s = [da[1]];
    options = [{id:0, value:s}];
    for(var i = 0; i < options.length; i++) {
        var data = options[i];
        var option = $('<option id="pnameOption_' + data['id'] + '" class="pname" value="' + data['value'] + '">' + data['value'] + '</option>');
        $('#pname').append(option);     
    }
$("#pname .pname:first").prop('selected', true);

     $("#pdate").val(da[2]);
     $("#pnumber").val(da[3]);
     $("#seri").val(da[4]);
     $("#quantity").val(da[5]);
     $("#line").val(da[6]);  
     //hilangkan status dan animasi loading
     $(".status").html("");
     $(".loading").hide();
     }
     }
    });
    });
于 2013-10-23T02:28:49.023 回答