AJAX не принимает данные с пробелом - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть этот AJAX-скрипт, который передает данные из DataTable на страницу PHP, а затем выводится на модальный режим. Он может передавать данные, если это всего лишь целый мир, например FINANCE / STOCK , DISBURSEMENT и т. Д., Но если данные имеют вид FINANCE 1 , FINANCE 2 и т. Д. Он показывает null.

Эта строка из моей таблицы данных

{
                    "targets": 6,
                    "data": "approvedby",
                    "render": function(data, type, row, meta) {
                        var table = '&nbsp;<button class="btn btn-default btn-sm preview btn-flat" data-id=' + row['department'] + ':' + row['jobposition'] + '><i class="fa fa-eye"></i> Preview</button>';
                        table += ((data == null) ? '&nbsp<button class="btn btn-success btn-sm edit btn-flat" data-id=' + row['department'] + ':' + row['jobposition'] +  '><i class="fa fa-check-square-o"></i> Edit</button>' : '');
                        table += ((data == null) ? '&nbsp<button class="btn btn-warning btn-sm approve btn-flat" data-id=' + row['department'] + ':' + row['jobposition'] +  '><i class="fa fa-check-square-o"></i> Approve</button>' : '');
                        return table += ((data == null) ? '&nbsp<button class="btn btn-danger btn-sm delete btn-flat" data-id=' + row['department'] + ':' + row['jobposition'] +  '><i class="fa fa-check-square-o"></i> Delete</button>' : '');
                    }
                }

Я попытался вывести код, чтобы увидеть, действительно ли он принимаетданные, и это делает.

var table = '&nbsp;<button class="btn btn-default btn-sm preview btn-flat" data-id=' + row['department'] + ':' + row['jobposition'] + '><i class="fa fa-eye"></i> ' + row['department'] + ':' + row['jobposition'] + ' Preview</button>';

Это изображение из моей DataTable. Как видите, я могу четко проверить, что данные принимаются правильно из dataTable.

enter image description here

Теперь проблема в том, что яПередав эти данные через AJAX, он не принимает данные, потому что у него есть пробел.

<script>
$("body").on('click', '.preview', function (e){ // standard view
        e.preventDefault();
        var id = $(this).data('id');
        $.ajax({
            type: 'POST',
            url: 'human_resource_jobpositionentry_masterfile_data_row.php',
            data: {referenceno:id}
        }).done(function(d){
            console.log('d: '+d);
            $('#jobpositionentry_masterfile_modal_loader').html(d);
            $('#jobpositionentry_masterfile_modal_loader').show();
        });
    });
</script>

Показывает null, это из моего режима.

enter image description here

Эта часть модальной части, где она отображается.

    <div class='form-group'>
                            <label for='add_idno' class='col-sm-3 control-label'>Series No.</label>
                            <div class='col-sm-9'>
                                <div id="jobpositionentry_masterfile_modal_loader">
                                </div>
                            </div>
                        </div>

Эти данные взрываются здесь.

<?php 
    include 'backend/conn.php';
    //include 'backend/session.php';
    if(isset($_POST['referenceno'])){
        $id = $_POST['referenceno'];

        $forexplode=explode(':',$id);
        echo    $departmentexplode = $forexplode[0];
        echo    $jobpositionexplode = $forexplode[1];

        $sql = "SELECT * FROM hrdjobpositionentry WHERE department LIKE '%$departmentexplode%' AND jobposition LIKE '%$jobpositionexplode%'";
        $query = sqlsrv_query($conn, $sql, array(), array("Scrollable" => SQLSRV_CURSOR_KEYSET));
        $row = sqlsrv_fetch_array($query, SQLSRV_FETCH_ASSOC);

        echo json_encode($row);
    }
?>

Могу ли я узнать причину, по которой AJAX не передает данные с пробелом?

1 Ответ

1 голос
/ 05 ноября 2019

Попробуйте передать данные, как показано ниже

 $.ajax({
            type: 'POST',
            url: 'human_resource_jobpositionentry_masterfile_data_row.php',
            data: JSON.stringify({referenceno:id}) //change 
        })

Может быть, вы не получаете свой идентификатор на стороне сервера в формате JSON. Надеюсь, это поможет вам Если у вас возникнут проблемы, дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...