jQuery Datatable Modal - Add information

advertisements

I'm trying to do the following. When you click on any one line, open a modal with the information of line and a ComboBox with information from another table and insert it into a new table in database. My question is, can do this via a modal? How?

Thank you. Follow my source.

  <script type="text/javascript">
    $(document).ready(function() {
        var oTable = $('#example').dataTable({
            "bProcessing": true,
            "bServerSide": true,
            "sPaginationType": "full_numbers",
            "dom": 'T<"clear">lfrtip',
            "tableTools": {
                "sSwfPath": "media/swf/copy_csv_xls_pdf.swf",
                "aButtons": [{
                    "sExtends": "copy",
                    "sButtonText": "Copy"
                }, {
                    "sExtends": "print",
                    "sButtonText": "Print"
                }, {
                    "sExtends": "collection",
                    "sButtonText": "Save",
                    "aButtons": ["csv", "pdf"]
                }]
            },
            "autoWidth": true,
            "sAjaxSource": "Load_Arm_tec.php",
            "aoColumns": [{
                "sClass": "readonly",
                "sTitle": "ID",
                "aTargets": [0]
            }, {
                "sClass": "readonly",
                "sTitle": "arm",
                "aTargets": [1]
            }, {
                "sClass": "readonly",
                "sTitle": "City",
                "aTargets": [2]
            }, {
                "sClass": "readonly",
                "sTitle": "reg",
                "aTargets": [3]
            }, {
                "sClass": "readonly",
                "sTitle": "QNTD",
                "aTargets": [4]
            }, {
                "sClass": "readonly",
                "sTitle": "Size",
                "aTargets": [5]
            }, {
                "sClass": "readonly",
                "sTitle": "DT_start",
                "aTargets": [6]
            }, {
                "sClass": "readonly",
                "sTitle": "DT_end",
                "aTargets": [7],
                "type": "date"
            }, {
                "sClass": "readonly",
                "sTitle": "Days",
                "aTargets": [8]
            }],
            "fnDrawCallback": function() {
                $('td.readonly').on('click', function(e) {

                    var id = oTable.fnGetData($(this).parents('tr')[0])[0];

                    //MODAL HERE....  HOW?

                });
            }
        });

    });
    </script>

And my HTML source..

<div id="dynamic">

    <table cellpadding="0" cellspacing="0" border="0" class="display"
        id="example">
        <thead>
            <tr>
                <th>ID</th>
                <th>ARM</th>
                <th>CITY</th>
                <th>REG</th>
                <th>QNTD</th>
                <th>SIZE</th>
                <th>DT_START</th>
                <th>DT_END</th>
                <th>DAYS</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td colspan="5" class="dataTables_empty">Loading..</td>
            </tr>
        </tbody>
        <tfoot>
        <tr>
            <th>ID</th>
            <th>ARM</th>
            <th>CITY</th>
            <th>REG</th>
            <th>QNTD</th>
            <th>SIZE</th>
            <th>DT_START</th>
            <th>DT_END</th>
            <th>DAYS</th>
        </tr>
        </tfoot>
    </table>
</div>

UPDATE: fnDrawCallback Whith Modal....

Okay, The question now is: How do I add a ComboBox with informations from my database??

"fnDrawCallback" : function() {
    $('td.readonly').on('click', function (e) {

        var id_armario = oTable.fnGetData($(this).parents('tr')[0])[0];
        var armario = oTable.fnGetData($(this).parents('tr')[0])[1];
        var cidade = oTable.fnGetData($(this).parents('tr')[0])[2];

      dialog = $( "#users-contain" ).dialog({
          autoOpen: false,
          height: 300,
          width: 350,
          modal: true,
          open: function( event, ui ) {
              $( "#users tbody" ).append( "<tr>" +
                  "<td>" + id + "</td>" +
                  "<td>" + arm + "</td>" +
                  "<td>" + city + "</td>" +
                     "</tr>" );
          },
          close: function( event, ui ) {
              $("#users tbody").empty();
           },
          buttons: {
            "OK": function(){
                dialog.dialog( "close" );
            },
            Cancel: function() {
              dialog.dialog( "close" );
            }
         }
    });

And the HTML for Modal...

<div id="users-contain">
    <h1>Existing Users:</h1>
    <table id="users" class="ui-widget ui-widget-content">
        <thead>
            <tr class="ui-widget-header ">
                <th>Id</th>
                <th>Arm</th>
                <th>City</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td></td>
                <td></td>
                <td></td>
            </tr>
        </tbody>
    </table>
</div>


What you are trying to do can be done by cloning the model inside an each statement that loop trough the data and append it to a certain section also I recommend adding class so that it can be easier to find using jQuery find() function

$.each(datAarray,function (index, value) { ComboBox = $(modal).clone()

ComboBox.find('.rowName').append(value);

})