3

この場合、データ検索で使用するパラメーターを取得するために、jquery の追加メカニズムで行を作成しました。

$(document).ready(function() {
    DataProvide();
    ManipulationHere();

    $('table').delegate('input[type=text].onlyDate', 'focusin', function(event) {
        $(this).datepicker({
            dateFormat: "yy-mm-dd",
            changeMonth: true,
            changeYear: true,
            yearRange: '1972:2020',
        });
    });

    $('table').delegate('input[type=text].onlyMonth', 'focusin', function(event) {
        $(this).monthpicker();
    });

}); //Tutup Document Ready


function ManipulationHere(){

var count = 1;
$(".button").click(function(){
    count += 1;
    var $row = $('<tr>' 
    + '<td>' + '</td>'
        + '<td>' + '<input id="data2_' + count + '" type="text" name="data2_' + count + '" class="data2" />' + '</td>'
        + '<td>' + '<input id="rows_' + count + '" name="rows[]" value="'+ count +'" type="hidden">'
        + '<a href="javascript:void(0);" class="remCF">Remove</a>' + '</td>'
    + '</tr>').appendTo("#customFields");
    var copyData = $("#data1_1").clone();
    var repID = copyData.attr('id', 'data1_' + count + '');
    var repName = copyData.attr('name', 'data1_' + count + '');

    $row.find('td:first').append(repID)
    var check = $row.find('td:first').html();
    var get = $(check).attr('id')
});

    $("#customFields").on('click','.remCF',function(){
        $(this).parent().parent().remove();
        count -= 1;
    });

    $("#customFields").on('change', '.tabelBaru', function() {

        var validator = $("#signupForm").validate();
        validator.resetForm();

        var $this = $(this),
        nilai = $this.val();
        console.log(nilai);

        if(nilai=='gender'){
            $this.closest("tr").find(".data2").replaceWith(
                '<select name="data2_' + count + '" class="data2">'
                    + '<option value="man" selected >Man</option>'
                    + '<option value="woman">Woman</option>'
                + '</select>'
            )
        }
        else if(nilai=='religion'){
            $this.closest("tr").find(".data2").replaceWith(
                '<select name="data2[]" class="data2">'
                    + '<option value="protestan" selected >Protestan</option>'
                    + '<option value="khatolik">Khatolik</option>'
                    + '<option value="islam">Islam</option>'
                    + '<option value="budha">Budha</option>'
                    + '<option value="hindu">Hindu</option>'
                + '</select>'
            )
        }
        else if(nilai=='blood'){
            $this.closest("tr").find(".data2").replaceWith(
                '<select name="data2_' + count + '" class="data2">'
                    + '<option value="gol_a" selected >A</option>'
                    + '<option value="gol_b">B</option>'
                    + '<option value="gol_ab">AB</option>'
                    + '<option value="gol_o">O</option>'
                + '</select>'
            )
        }
        else if(nilai=='birth_date'){
            $this.closest("tr").find(".data2").replaceWith(
                '<input type="text" id="data2_' + count + '" name="data2_' + count + '" value="" placeholder="Date Format" class="onlyDate"/>'
            )
        }
        else if(nilai=='start_date'){
            $this.closest("tr").find(".data2").replaceWith(
                '<input type="text" id="data2_' + count + '" name="data2_' + count + '" value="" placeholder="Date Format" class="onlyDate"/>'
            )
        }
        else if(nilai=='end_date'){
            $this.closest("tr").find(".data2").replaceWith(
                '<input type="text" id="data2_' + count + '" name="data2_' + count + '" value="" placeholder="Date Format" class="onlyDate"/>'
            )
        }
        else if(nilai=='join_date'){
            $this.closest("tr").find(".data2").replaceWith(
                '<input type="text" id="data2_' + count + '" name="data2_' + count + '" value="" placeholder="Date Format" class="onlyDate"/>'
            )
        }
        else if(nilai=='los_month'){
            $this.closest("tr").find(".data2").replaceWith(
                '<input type="text" id="data2_' + count + '" name="data2_' + count + '" value="" placeholder="Month Format" class="onlyMonth"/>'
            )
        }
        else{
            $this.closest("tr").find(".onlyDate").replaceWith(
                '<input type="text" id="data2_' + count + '" name="data2_' + count + '" value="" class="data2"/>'
            )
        }

    });
}


function DataProvide(){
    selectValues = { 
        "pilih"         : "-Pilih-",
        "id"            : "ID",
        "emp_name"      : "Employee Name",
        "photo_path"    : "Photo Path",
        "emp_id"        : "Employee ID",
        "birth_place"   : "Birth Place",
        "birth_date"    : "Birth Date",
        "age"           : "Age",
        "gender"        : "Gender",
        "religion"      : "Religion",
    };

    $.each(selectValues, function(key, value) {   
         $('#data1_1')
             .append($("<option></option>")
             .attr("value",key)
             .text(value)); 
    }); 
}

上記のプロセスの結果、パラメーターとして使用される行があります。

たとえば、行が追加された場合: ステップ1

SAVE プロセスの後に生成されるクエリを作成したい:

SELECT * from my_table_name WHERE id='123'

例でもう 1 つの行パラメーターを追加すると、次のようになります。 ステップ2

SAVE プロセスの後に生成されるクエリを作成したい:

SELECT * from my_table_name WHERE id='123' and employee_name='Testing'

そして、3行目を追加して別のパラメータ検索を追加したい場合: ステップ 3

プロセスでボタンをクリックした後にクエリが生成されるようにしたいのは次のとおりです。

SELECT * from my_table_name WHERE id='123' and employee_name='Testing' and employee_id='111'

次のようなフォーム POST の結果からデータを読み取ろうとする関数を作成しました。

    $Query = "SELECT * from my_table_name WHERE ....... << from looping"
    foreach ($_POST['rows'] as $key => $count ){
            $Data1  = $_POST['data1_'.$count];
            $Data2  = $_POST['data2_'.$count];
            echo $Data1." >> ".$Data2;
            echo "<br>";
    }

後でクエリに入力するために、POST の結果からデータのキーと値を取得するにはどうすればよいですか?

4

1 に答える 1