0

am working on php crud operation. from my index page am fetching data to table.. but data not fetching properly.. its not working.. i have been debug this for a long time.. but am unable to find the solution.. table name G_Pt.. can anyone pls help.. i am not sure where am i missing the part.. since am beginner to php, couldn't solve this.

index file :

   <html>
    <head>
        <title>Webslesson Demo - PHP PDO Ajax CRUD with Data Tables and Bootstrap Modals</title>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
        <script src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
        <script src="https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js"></script>       
        <link rel="stylesheet" href="https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css" />
        <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
        <style>
            body
            {
                margin:0;
                padding:0;
                background-color:#f1f1f1;
            }
            .box
            {
                width:1270px;
                padding:20px;
                background-color:#fff;
                border:1px solid #ccc;
                border-radius:5px;
                margin-top:25px;
            }
        </style>
    </head>
    <body>
        <div class="container box">
            <h1 align="center">PHP PDO Ajax CRUD with Data Tables and Bootstrap Modals</h1>
            <br />
            <div class="table-responsive">
                <br />
                <div align="right">
                    <button type="button" id="add_button" data-toggle="modal" data-target="#userModal" class="btn btn-info btn-lg">Add</button>
                </div>
                <br /><br />
                <table id="user_data" class="table table-bordered table-striped">
                    <thead>
                        <tr>
                        <th>ID</th>
        <th>PARENT NAME</th>
        <th>RELATIONSHIP</th>
         <th>STUDENT NAME</th>
         <th>DEPARTMENT</th>
         <th>CURRENT YEAR</th>
         <th>GRIEVANCE SUBJECT</th>
         
         <th>GRIEVANCE MESSAGE</th>
         <th>MOBILE NUMBER</th>
         <th>REPORTED DATE</th>
         <th>CURRENT STATUS</th>
         <th>EDIT</th>
         <th>DELETE</th>
                        </tr>
                    </thead>
                </table>
                
            </div>
        </div>
    </body>
</html>

<div id="userModal" class="modal fade">
    <div class="modal-dialog">
        <form method="post" id="user_form" enctype="multipart/form-data">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                    <h4 class="modal-title">Add User</h4>
                </div>
                <div class="modal-body">
                    <label>Enter First Name</label>
                    <input type="text" name="first_name" id="first_name" class="form-control" />
                    <br />
                    <label>Enter Last Name</label>
                    <input type="text" name="last_name" id="last_name" class="form-control" />
                    <br />
                    <label>Select User Image</label>
                    <input type="file" name="user_image" id="user_image" />
                    <span id="user_uploaded_image"></span>
                </div>
                <div class="modal-footer">
                    <input type="hidden" name="user_id" id="user_id" />
                    <input type="hidden" name="operation" id="operation" />
                    <input type="submit" name="action" id="action" class="btn btn-success" value="Add" />
                    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                </div>
            </div>
        </form>
    </div>
</div>

<script type="text/javascript" language="javascript" >
$(document).ready(function(){
    $('#add_button').click(function(){
        $('#user_form')[0].reset();
        $('.modal-title').text("Add User");
        $('#action').val("Add");
        $('#operation').val("Add");
        $('#user_uploaded_image').html('');
    });
    
    var dataTable = $('#user_data').DataTable({
        "processing":true,
        "serverSide":true,
        "order":[],
        "ajax":{
            url:"fetch.php",
            type:"POST"
        },
        "columnDefs":[
            {
                "targets":[11,12],
                "orderable":false,
            },
        ],

    });

    $(document).on('submit', '#user_form', function(event){
        event.preventDefault();
        var firstName = $('#first_name').val();
        var lastName = $('#last_name').val();
        var extension = $('#user_image').val().split('.').pop().toLowerCase();
        if(extension != '')
        {
            if(jQuery.inArray(extension, ['gif','png','jpg','jpeg']) == -1)
            {
                alert("Invalid Image File");
                $('#user_image').val('');
                return false;
            }
        }   
        if(firstName != '' && lastName != '')
        {
            $.ajax({
                url:"insert.php",
                method:'POST',
                data:new FormData(this),
                contentType:false,
                processData:false,
                success:function(data)
                {
                    alert(data);
                    $('#user_form')[0].reset();
                    $('#userModal').modal('hide');
                    dataTable.ajax.reload();
                }
            });
        }
        else
        {
            alert("Both Fields are Required");
        }
    });
    
    $(document).on('click', '.update', function(){
        var user_id = $(this).attr("id");
        $.ajax({
            url:"fetch_single.php",
            method:"POST",
            data:{user_id:user_id},
            dataType:"json",
            success:function(data)
            {
                $('#userModal').modal('show');
                $('#first_name').val(data.first_name);
                $('#last_name').val(data.last_name);
                $('.modal-title').text("Edit User");
                $('#user_id').val(user_id);
                $('#user_uploaded_image').html(data.user_image);
                $('#action').val("Edit");
                $('#operation').val("Edit");
            }
        })
    });
    
    $(document).on('click', '.delete', function(){
        var user_id = $(this).attr("id");
        if(confirm("Are you sure you want to delete this?"))
        {
            $.ajax({
                url:"delete.php",
                method:"POST",
                data:{user_id:user_id},
                success:function(data)
                {
                    alert(data);
                    dataTable.ajax.reload();
                }
            });
        }
        else
        {
            return false;   
        }
    });
    
    
});
</script>

Fetching file :

<?php
include('db.php');
include('function.php');
$query = '';
$output = array();
$query .= "SELECT * FROM G_Pt ";
if(isset($_POST["search"]["value"]))
{
    $query .= 'WHERE first_name LIKE "%'.$_POST["search"]["value"].'%" ';
    $query .= 'OR last_name LIKE "%'.$_POST["search"]["value"].'%" ';
}
if(isset($_POST["order"]))
{
    $query .= 'ORDER BY '.$_POST['order']['0']['column'].' '.$_POST['order']['0']['dir'].' ';
}
else
{
    $query .= 'ORDER BY id DESC ';
}
if($_POST["length"] != -1)
{
    $query .= 'LIMIT ' . $_POST['start'] . ', ' . $_POST['length'];
}
$statement = $connection->prepare($query);
$statement->execute();
$result = $statement->fetchAll();
$data = array();
$filtered_rows = $statement->rowCount();
foreach($result as $row)
{
    $image = '';
 if($row["image"] != '')
 {
  $image = '<img src="upload/'.$row["image"].'" class="img-thumbnail" width="50" height="35" />';
 }
 else
 {
  $image = '';
 }
    
    $sub_array = array();
    $sub_array[] = $row["G_Pid"];
    $sub_array[] = $row["G_Parentname"];
    $sub_array[] = $row["G_Relationship"];
    $sub_array[] = $row["G_Studentname"];
    $sub_array[] = $row["G_Department"];
    $sub_array[] = $row["G_Year"];
    $sub_array[] = $row["G_Subject"];
    $sub_array[] = $row["G_Message"];
    $sub_array[] = $row["G_Mobile"];
    $sub_array[] = $row["G_Submitteddate"];
    $sub_array[] = $row["G_Status"];
    $sub_array[] = '<button type="button" name="update" id="'.$row["G_Pid"].'" class="btn btn-warning btn-xs update">Update</button>';
    $sub_array[] = '<button type="button" name="delete" id="'.$row["G_Pid"].'" class="btn btn-danger btn-xs delete">Delete</button>';
    $data[] = $sub_array;
}
$output = array(
    "draw"              =>  intval($_POST["draw"]),
    "recordsTotal"      =>  $filtered_rows,
    "recordsFiltered"   =>  get_total_all_records(),
    "data"              =>  $data
);
echo json_encode($output);
?>
Kinglish
  • 23,358
  • 3
  • 22
  • 43
Anba
  • 1
  • 1
    Are you getting any warnings or error messages? Have you even enabled warnings in PHP? What does the rendered HTML look like? – kmoser Jun 19 '21 at 03:28
  • If you've been debugging a long time then you should be able to give us a more specific description of the issue than "not working". If you need help, provide proper details of what you have found out so far – ADyson Jun 19 '21 at 07:13
  • P.s. this code is horrifically vulnerable to SQL injection attacks and also basic SQL syntax errors. I don't know where you were taught to write queries using PHP but if they didn't teach you to use parametrised queries and prepared statements then your education has been significantly neglected. See https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php for how to do it properly. That might potentially even solve whatever your (unspecified) problem is in your question. So please sort that out and come back to us if you still have an issue afterwards – ADyson Jun 19 '21 at 07:15
  • Since i am beginner, am just getting learn things.. somehow i managed to solve the above issue.. thanks for you response.. appreciated.. – Anba Jun 21 '21 at 18:03

0 Answers0