【问题标题】:2 almost identical Jquery codes, but only one works [closed]2个几乎相同的Jquery代码,但只有一个有效[关闭]
【发布时间】:2018-08-30 06:34:17
【问题描述】:

所以我正在为一个俱乐部设计一个网站的后端。您应该能够查看和编辑包含信息的表格。现在我只需要 2 张桌子。一份用于会员,一份用于俱乐部举办的活动。成员的东西完美无缺,所以我复制粘贴了代码,在这里和那里调整了一些小东西,并希望它也适用于活动。但它没有。而且我找不到我犯错的地方。

下面是用于显示成员表的 JQuery:

$(document).ready(function(){
    $("#personen").click(function(){
      $.ajax({
        url: '/website/administrator/components/com_backend/Personen_AJAX.php',
        success: function(data,status)
        {
          createTableByJqueryEach2(data);             
        },
        async:   true,
        dataType: 'json'
      }); 
    });
  });

  function createTableByJqueryEach2(data)
  {

  var eTable="<table><thead><tr><th colspan='5'>Created by for loop</th></tr><tr><th>Titel</th><th>Vorname</th><th>Name</th><th>Unternehmen</th><th>Gruppe</th</tr></thead><tbody>"
  $.each(data,function(index, row){
    // eTable += "<tr>";
    // eTable += "<td>"+(data)[i]['Titel']+"</td>";
    // eTable += "<td>"+(data)[i]['Vorname']+"</td>";
    // eTable += "<td>"+(data)[i]['Name']+"</td>";
    // eTable += "<td>"+(data)[i]['Unternehmen']+"</td>";
    // eTable += "<td>"+(data)[i]['Gruppe']+"</td>";
    // eTable += "</tr>";

    eTable += "<tr>";
    $.each(row,function(key,value){
      eTable += "<td>"+value+"</td>";
    });
    eTable += "</tr>";
  });
  eTable +="</tbody></table>";
  $('#eachTable').html(eTable);
}

以及用于显示成员表的 PHP:

<?php 
    include($_SERVER['DOCUMENT_ROOT'].'/website/dbConnection.php');

    function filterTable($searchquery)  
    {   
        $filter_Result = mysqli_query($GLOBALS['connect'], $searchquery);
        return $filter_Result;
    }

    $searchquery = "SELECT Titel, Vorname, Nachname, Unternehmen, Gruppe FROM mitglieder";
    $searchresult = filterTable($searchquery) or die("Table cant be displayed");

    $data = mysqli_fetch_all($searchresult);
    echo json_encode($data);

?>

这 2 段代码有效,但接下来的 2 段代码几乎完全相同。

现在是用于向我展示事件表的 JQuery:

$(document).ready(function(){
    $("#anlaesse").click(function(){
        $.ajax({
          url: '/website/administrator/components/com_backend/Anlaesse_AJAX.php',
          success: function(data1,status)
          {
            createTableByJqueryEach(data1);
          },
          async:   true,
          dataType: 'json'
        });
    });
});

function createTableByJqueryEach(data1)
  {

  var eTable="<table><thead><tr><th colspan='4'>Created by for loop</th></tr><tr><th>Datum</th><th>Typ</th><th>Referent</th><th>Thema</th</tr></thead><tbody>";
  $.each(data1,function(index, row){
    // eTable += "<tr>";
    // eTable += "<td>"+(data1)[i]['Datum']+"</td>";
    // eTable += "<td>"+(data1)[i]['Typ']+"</td>";
    // eTable += "<td>"+(data1)[i]['Referent']+"</td>";
    // eTable += "<td>"+(data1)[i]['Thema']+"</td>";
    // eTable += "</tr>";

    eTable += "<tr>";
    $.each(row,function(key,value){
      eTable += "<td>"+value+"</td>";
    });
    eTable += "</tr>";
  });
  eTable +="</tbody></table>";
  $('#eachTable').html(eTable);
  }

还有用于向我展示事件表的 PHP:

<?php 
    include($_SERVER['DOCUMENT_ROOT'].'/website/dbConnection.php');

    function filterTable($searchquery)  
    {   
        $filter_Result = mysqli_query($GLOBALS['connect'], $searchquery);
        return $filter_Result;
    }

    $searchquery = "SELECT Datum, Typ, Referent, Thema FROM events";
    $searchresult = filterTable($searchquery) or die("Tabelle kann nicht angezeigt werden");

    $data1 = mysqli_fetch_all($searchresult);
    echo json_encode($data1);

?>

我在我的 JQuery 中为失败添加了一个参数,但为了更好的代码在此处删除了它。 2 个错误是“parsererror”和“SyntaxError: Unexpected end of JSON input”。

还有一些重要信息:

首先关闭我的会员表和活动表。我不得不审查第二个,以免泄露我工作/生活/等的地方。

当我在请求事件表后查看开发工具时,我得到的 JSON 响应是空的。当我请求成员表时,它是一个包含数据库中所有成员的数组。

关于现有的所有信息,我已经为这个问题工作了好几个小时。我需要第二双眼睛来查看我的代码并指出我做错了什么。

感谢您的帮助!

编辑:所以我在 $searchresult 和 $data1 之间输入了以下代码:

$array = array();

while($row = mysqli_fetch_assoc($searchresult)){
    $array[] = $row;
}

echo '<pre>'; print_r($array); echo '</pre>';

它给了我以下数组:

【问题讨论】:

  • 要检查的代码太多。你能发布相关的内容吗?
  • 您认为控制台对第二个 ajax 请求的响应是什么?
  • @SougataBose HTML 仅用于为 Jquery 和 PHP 提供上下文。所以你可以放心地忽略它,除非你偶然发现,让我们说在 Jquery 代码中的一个 id 上,并想检查哪个 html 组件有那个 id。
  • @u_mulder 如果这就是您的意思,控制台不会给出任何错误。当我导航到网络并按 XHR 时,我可以看到 JSON 响应。成员请求的响应是一个包含数据库成员的数组。事件请求的响应为空。
  • 我可以建议您考虑创建一个minimal reproducible example 吗?您甚至可能会在执行此操作时发现问题。花时间在您的问题上的人数与您发布的代码的复杂性成反比。

标签: javascript php jquery sql json


【解决方案1】:

好吧,伙计们,我发现了问题。

我在数据库条目中有一些德语字母,如 ä、ö 和 ü,这使我的代码感到困惑。

很抱歉这篇杂乱无章的帖子,其中包含太多不相关的代码和信息。我还是新手,正在学习如何正确发布,而且我还不太擅长网页设计(考虑到我的糟糕代码,这很明显)。

感谢所有尝试帮助我的人!

【讨论】:

    猜你喜欢
    • 2020-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2011-02-11
    • 1970-01-01
    相关资源
    最近更新 更多