使用jquery和php访问部分URL的问题

问题描述 投票:-1回答:2

即时通讯显示访问display_table_content.php中的URL显示,以显示数据到我的表内容。如果我在没有jquery和ajax的情况下单独使用php,它会工作。

display_table_content.php

<input type="hidden" name="job_operation" id="job_operation1" value=""/>
<div id="post_details_data" class="tb_body_container"> </div>

url:display_table_content.php?jobs_name=www

JQUERY _ AJAX

$(document).ready(function(){
    fetch_user_data();

    function fetch_user_data() {

        var job_operation = "fetch";

        $.ajax({
            url:"get_table_content.php",
            method:"POST",
            data:{job_operation:job_operation},
            success:function(data) {
                $('#post_details_data').html(data);
                $('#tb_jobs').DataTable({
                    dom: 'lBfrtip',
                    responsive: true,
                    "processing":true,
                    buttons:[{
                        extend: 'csv',
                        exportOptions: {columns: [0, 1, 2, 3, 4]}
                    },
                        {
                            extend: 'pdf',
                            exportOptions: {columns: [0, 1, 2, 3, 4]}
                        },
                        {
                            extend: 'excel',
                            exportOptions: {columns: [ 0, 1, 2, 3, 4]}
                        },
                        {
                            extend: 'print',
                            exportOptions: {columns: [ 0, 1, 2, 3, 4]}
                        }],
                    "order":[],
                    "columnDefs":[{"targets":[0, 3, 4],"orderable":false}]
                });
            }
        });

    }

});

get_table_content.php

if(isset($_POST["job_operation"])) {

require_once("database.php");
$pdo = pdo_con();

if ($_POST["job_operation"] == "fetch") {

$user_name= $_GET['jobs_name']; <-- Error seems to be from here

    $fetch_data = "SELECT * FROM jobs j WHERE jobs_name = $user_name";

    $result_User = $pdo->prepare($fetch_data);
    $result_User->execute();

    $output = '<table id="tb_jobs" class="table table-bordered table-hover table-striped table-responsive-lg" >

    <thead class="thead-dark">

    <tr>
        <th width="60%">Job Details</th>
        <th width="15%">Company Name</th>
    </tr>
    </thead>';

    $output .= '<tbody>';

    while ($row = $result_User->fetch(PDO::FETCH_ASSOC)) {

        $name_text1= $row['aaa'];
        $name_text2= $row['ddd'];

        $output .= '
    <tr>
        <td>' .$name_text1. '</td>
        <td>' .$name_text2. '</td>

    </tr>';
    }

    $output .= '</tbody></table>';

    echo $output;

}

}

我只显示表头,由于get_table content.php PHP页面中的'get'部分,我无法获取表内容

php jquery ajax get
2个回答
0
投票

如果我已经理解你想要的话:这条线似乎毫无意义:$ user_name = filter_input(INPUT_GET,“www”,FILTER_SANITIZE_STRING); < - 错误似乎来自这里

添加display_table_content.php:

 <input type="text" id="job_operation1" value=""/>
 <input type="text" id="user_name" value=""/>
 <script>
var jobrequest = new Object;
jobrequest.job_operation = $('#job_operation1').val();
jobrequest.user_name = $('#user_name').val();

$.ajax({
        url:"get_table_content.php",
        method:"POST",
        data:jobrequest,

在get_table_content.php中:

$job_operation = $_POST["job_operation"];
$user_name = $_POST["user_name"];

0
投票

如果我没有弄错你用php在后端创建一个HTML表,然后使用DataTables来处理你创建的这个表,首先DataTables可以使用ajax请求从创建的json数组中获取内容在你的后端,说我认为你应该这样做,因为更容易管理未来的变化,它也会让表创建到前端这是最好的方法,说我告诉你一个例子来以这种方式得到你的桌子:

你的Html:

   <input type="hidden" name="userToFind" id="userToFind" value=""/>
   <br>
   <button id="btnSearch">Search Operations</button>
   <br>
    <div class="table-responsive" id="tableOperators" >
              <h2>Table Operators</h2>

             <table class="display dataTable" id="TablejobOperation"  >
               <thead>
                    <tr>
                        <th>Id</th>
                        <th>Operation</th>
                        <th>starts</th>
                        <th>ends</th>
                    </tr>
                </thead>
                <tfoot>
                    <tr>
                      <th>Id</th>
                        <th>Operation</th>
                        <th>starts</th>
                        <th>ends</th>
                    </tr>
                </tfoot>
              </table>

           </div>
            <br>

       </div>

你的PHP:

     if ($_POST["action"] == "SLC" && isset($_POST["user_name"])) {
         $user_name= $_POST["user_name"];
         $query = "SELECT * FROM jobs j WHERE jobs_name = $user_name";
         $command= $conn->prepare($query);
         $command->execute();
         $result= $command->fetchAll(PDO::FETCH_ASSOC);
         echo json_encode($result,JSON_UNESCAPED_UNICODE);
        }

DataTable javascript:

  var jobOperation= $('#TablejobOperation').DataTable({
                           "destroy": true,
                           "responsive":{
                             "details": {
                             renderer: function ( api, rowIdx, columns ) {
                               var data = $.map( columns, function ( col, i ) {
                                 return col.hidden ?
                                   '<tr data-dt-row="'+col.rowIndex+'" data-dt-column="'+col.columnIndex+'">'+
                                     '<td>'+col.title+':'+'</td> '+
                                     '<td>'+col.data+'</td>'+
                                   '</tr>' :
                                   '';
                               } ).join('');

                               return data ?$('<table/>').append( data ) :false;
                             }
                           }
                         },
                           "autoWidth": false,
                                 "ajax": {
                                     "url": 'some.php',
                                     "method": 'POST',
                                     data:{action:"SLC", user_name:username }
                                 },
                                 "columns": [
                                     {"data": "id"},
                                     {"data": "job_operation"},
                                     {"data": "type"},
                                     {"data": "starts"},
                                     {"data": "ends"}
                                 ],
                                 "language":{"url": "//cdn.datatables.net/plug-ins/1.10.15/i18n/Spanish.json"},
                                   "columnDefs": [
                                     {
                                       "className": "dt-center", "targets": "_all"
                                      }
                                   ]
                             });

你的表进入了一个点击事件:

 $("#btnSearch").on('click',function(){
    var username = $.trim($('#userToFind').val().replace(/\s+/g, ' '));
    var TablejobOperation = $('#tablaSeguros').DataTable();

   if ($.fn.DataTable.isDataTable("#TablejobOperation")) {
    TablejobOperation.destroy();
    $('#TablejobOperationtbody').remove();
     }
     //the datatable script from the top goes here
    })

希望能帮助到你

© www.soinside.com 2019 - 2024. All rights reserved.