0

この質問に最初に感謝します https://stackoverflow.com/questions/14792014/select-option-which-were-just-appended-with-jquery

SQL でデータを分割することからのオプション値が 1 つのページに 2 つの選択がある場合、別の問題があります。

ここにデフォルトページとしての私のコード

    <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>

2 つの選択オプション<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">、これをデフォルトの選択として設定しました。

しかし、2番目<select id="pname">のオプションに同じコードを使用すると、エラーが発生し、分割したデータが表示されません。だから私は行き詰まった、何が問題なの?

4

1 に答える 1

1

実際にあなたのリンクには答えがあります。あなたのコードには、同様の変数があります。「データ」を意味すると、競合が発生します。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 に答える