Datatable с вставкой поля приоритета на странице просмотра и сортировки таблицы в соответствии с приоритетом - PullRequest
0 голосов
/ 06 февраля 2019

Я добавил приоритет столбца в моей таблице данных, я хочу вставить приоритет в таблицу данных при просмотре ... когда я вставляю приоритет, он должен вставить значение приоритета в поле приоритета базы данных ... и когда я добавлю приоритет, таблица данных должна отсортироватьсяв соответствии с этим номером приоритета при добавлении приоритета для каждого продукта. Я хочу реализовать это с помощью ajax в codeigniter. Любая идея, как я могу реализовать это.?Спасибо :) Table look like this Это мой текущий код для ввода данных

<html> 
   <head>  
      <link rel="stylesheet" type="text/css" href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
      <script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"></script>
      <script type="text/javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>
   </head>  
   <body>
   <table id="displayy" class="display" style="width:100%">  
      <thead> 
      <tr>  
         <td>Product ID</td>  
         <td>Product Name</td> 
         <td>Product Description</td> 
         <td>Category</td>  
         <td>Sub Category</td> 
         <td>Image</td>
         <td>Priority</td>
      </tr>  
      </thead>
         <?php  
         foreach ($h->result() as $row)  
         {  ?>
            <tr>  
               <td><?php echo $row->p_id;?></td> 
               <td><?php echo $row->product_name;?></td>  
               <td><?php echo $row->product_des;?></td>
               <td><?php echo $row->category;?></td>
               <td><?php echo $row->subcat;?></td>

               <td><?php $imageURL = base_url().'/images/'.$row->image;?>
                    <img src="<?php echo $imageURL; ?>" alt="" width="100" height="100"  /></td>
               <td>
                  <input type="text" name="priority" id="priority">
               </td>
            </tr>  
         <?php }  ?>  
   </table>  
<script type="text/javascript">
   $(document).ready(function() {
      $('#displayy').dataTable( {
        "lengthMenu": [[3,5,8,10, 25, 50, -1], [3,5,8,10, 25, 50, "All"]]
      });
   });
</script>
</body>
</html>

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

Надеюсь, это вам поможет, здесь индекс столбца с датируемыми значениями всегда начинается с 0 и в соответствии с тем, что предыдущий столбец находится в индексе 6

$(document).ready(function() {
    $('#displayy').DataTable( {
        "order": [[ 6, "desc" ]]
    } );
} );
0 голосов
/ 08 февраля 2019

Так что я получил ответ, если кто-то захочет его в будущем

Добавьте функцию onchange в текстовое поле "value =" "id =" priority "onchange =" update_priority ('p_id?>', This.value) ">

В контроллере добавить ::

public function priorityadd() 
{ 
 //echo $this->input->post('priority');
 $rowId = $this->input->post("rowId"); 
 $priorityCount = $this->input->post("priority"); 

 $this->load->database(); 
 $this->load->model('PriorityModel'); 
 if($this->PriorityModel->insertp($rowId,$priorityCount)==true){
  echo 1;
 } else{
  echo 0;
 }
}

В модели добавить это ::

public function select2 () {

     $this->db->from('product_details');
     $this->db->order_by('Priority','ASC');
     $query = $this->db->get(); return $query; 

}

также на странице просмотра этого ajax-запроса ::

<script> 


function update_priority(rowId,val){
  jQuery.ajax({
  url: "<?=base_url()?>Userlog/priorityadd",
  method:"POST",
  data:{rowId:rowId,priority:val},
  success: function(result){
    if(result==1){
     // alert("Priority Updated");
      location.reload();
    }else{
      alert("Error");
    }
  }
  });

}

</script>
0 голосов
/ 06 февраля 2019

Вы можете попробовать это как решение:

На стороне HTML:

<html> 
   <head>  
       <link rel="stylesheet" type="text/css" 
       href="https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css">
 <script type="text/javascript" src="https://code.jquery.com/jquery-3.3.1.js"> 
 </script>
<script type="text/javascript" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js"></script>

   </head>  
   <body>
   <div id="content">
   <table id="display" class="display" style="width:100%">  

        <thead> 
         <tr>  
            <td>Product ID</td>  
            <td>Product Name</td> 
            <td>Product Description</td> 
            <td>Category</td>  
            <td>Sub Category</td> 
            <td>Image</td>
            <td>Priority</td>
         </tr>  
         </thead>
         <?php  
         foreach ($h->result() as $key=>$row)  
         {  
            ?><tr>  
                <td><?php echo $row->p_id;?></td> 
            <td><?php echo $row->product_name;?></td>  
            <td><?php echo $row->product_des;?></td>
            <td><?php echo $row->category;?></td>
            <td><?php echo $row->subcat;?></td>

            <td><?php $imageURL = base_url().'/images/'.$row->image;?>
                    <img src="<?php echo $imageURL; ?>" alt="" width="100" height="100"  />
                </td>


           <td>
            <form method="POST" class="dataUpdate">
            <input type="text" name="priority" id="priority"/>
            <input type="hidden" name="pid" value="<?php echo $row->p_id;?>"/> 
            <input type="submit" value"Update" />
            </form>


           </td>

            </tr>  
         <?php }  
         ?>  
   </table> 
  </div> 

</body>
</html>

На стороне JQuery:

$(document).ready(function() {    
$(".dataUpdate").on("submit", function( event ) {
    event.preventDefault();
        $.ajax({
            method: "POST",
            dataType:"html",
            url: 'test.php',
            data: $( this ).serialize(),
            success: function(data_return) {
                $("#content").empty();
                $("#content").append(data_return);            
            },
            error: function(data_return) {
                console.log(data_return); // reset after submit
            }
        });
    }
    });
});

На test.php:

$id=$_POST['pid'];
$prior=$_POST['priority'];
mysqli_query("update your_db set priority='".$prior."' where pid='".$id."');
$getdata=mysqli_query("select * from your_db order by priority DESC");
$response="
 <table id='display' class='display' style='width:100%'>  
 <thead> 
     <tr>  
        <td>Product ID</td>  
        <td>Product Name</td> 
        <td>Product Description</td> 
        <td>Category</td>  
        <td>Sub Category</td> 
        <td>Image</td>
        <td>Priority</td>
     </tr>  
     </thead>";
    $result=mysqli_fetch_array($getdata);
    foreach($result as $row)
    {
         $imageURL = base_url().'/images/'.$row->image;
         $response=$response."<tr>  
            <td>".$row->p_id."</td> 
        <td>".$row->product_name."</td>  
        <td>".$row->product_des."</td>
        <td>".$row->category."</td>
        <td>".echo $row->subcat."</td>

        <td><img src='".$imageURL."' alt='' width='100' height='100'  />
            </td>


       <td>
        <form method='POST' class='dataUpdate'>
        <input type='text' name='priority' id='priority' value='".$row->priority."'/>
        <input type='hidden' name='pid' value='".$row->p_id."'/> 
        <input type='submit' value='Update' />
        </form>


       </td>

        </tr> ";
     }

  $response=$response."</table";
 return $response;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...