值更改后,json不返回任何内容

时间:2019-01-03 16:08:41

标签: javascript php datatables

我有DataTables表,其中包含行详细信息,可通过单击行来打开。行详细信息以3种不同的语言显示,可通过复选框选择。单击该行后,该语言将发送到details.php脚本(langy:chLanguage),该脚本返回此所选语言的json值。

最初,该语言已设置为chDe,并且一切正常,直到我单击另一种语言为止。当语言更改为EN或RU,甚至更改为DE时,返回的json为空。

index.php:

<h5>Language</h5>

  <input type="checkbox" id="chDe" name="languages" checked>DE
  <input type="checkbox" id="chEn" name="languages">EN
  <input type="checkbox" id="chRu" name="languages">RU

<script>

var chLanguage = "chDe";
$('input[name=languages]').click(function() {
        $('input[name="' + this.name + '"]').not(this).prop('checked', false);
        chLanguage = [];
        $('input[name=languages]:checked').each(function() {
                chLanguage.push($(this).attr('id'));
        });
        if (chLanguage == '') {
                chLanguage = 5;
        }
        $('#example').DataTable().ajax.reload();
});


function format ( rowData, row, $chLanguage ) {
// FOLLOWING CONSOLE.LOG RETURNS THE ACTUALLY SELECTED LANGUAGE CORRECTLY
        console.log("chLanguage in format function: " + chLanguage);
    var div = $('<div/>')
        .addClass( 'loading slider' )
    $.ajax( {
        url: 'scripts/details.php',
        data: {
            name: rowData[0],
            langy: chLanguage,
        },
        dataType: 'json',
        type: 'post',
        success: function ( json ) {
// FOLLOWING CONSOLE.LOG RETURNS [Object object] unless the language is changed, then it returns nothing
            console.log("json: " + json);
            var childTable = '<div id="rowdetails" class="slidera"><ul class="slider">';
            childTable = childTable.concat(
                '<div class="row rdstyle">' +
                   '<table class="detailstable detailserrors">' +
                      '<tr><td><b>Error class:</b></td><td>' + json[0].ERRTRIEDA + '</td></tr>' +
                      '<tr><td><b>Error group:</b></td><td>' + json[0].ERRSKUPINA + '</td></tr>' +
                      '<tr><td><b>Error:</b></td><td>' + json[0].ERRPOPIS + '</td></tr>' +
                    '</table>' +
                '</div>
  );
 });
}

details.php:

$language = $_POST['langy'];

if ($language == 'chDe' ) {
        $setLang = 'DE';
}else if($language == 'chEn') {
        $setLang = 'EN';
} else{$setLang = 'RU';}

和$ setLang在SQL查询中用于按语言过滤数据。

我希望我离可行的解决方案不远,因为它已经在运行,只是语言切换不起作用。对不起,没有附上工作样品。我不知道如何实现所有这些部分,包括mysql db和几个不同的php脚本:(

0 个答案:

没有答案