Ankündigung

Einklappen
Keine Ankündigung bisher.

Ausgabe funktioniert nicht mehr nachdem Datei aus einer anderen aufgerufen wird.

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Ausgabe funktioniert nicht mehr nachdem Datei aus einer anderen aufgerufen wird.

    Hallo zusammen,

    dies ist mein erster Beitrag hier. Vorneweg habe ich natürlich gesucht, bin aber (aus eigener Blödheit oder weil es tatsächlich nirgendwo steht) nicht fündig geworden. Höchstwahrscheinlich gibt es Schelte von Euch, weil ich vielleicht unwissentlich irgendwas übersehen und deshalb den Regeln widersprechend gemacht habe. Dafür bitte ich um Verzeihung, es geschieht nicht absichtlich.


    Mein Problem ist folgendes:

    Ich lese aus einer Datenbank eine Tabelle ein und lasse mir ein gefiltertes Ergebnis ausgeben. Soweit passt auch alles. Allerings funktioniert das ganze nur, wenn ich die Datei "pur" aufrufe. Lasse ich sie über eine fremde Funktion laden, stimmt was nicht.

    Über folgenden Code lädt die Seite eine Datei nach und zeigt sie auch problemlos im passenden <div> an. Aber weder die 'sob1.html' noch die 'bonusabrechnung.php' geben ihre Daten aus.

    Code:
    <script>
      $(document).ready(function(){
        $("#sobrechner").click(function(){
      $("#maincontent").load('tools/sob1.html');
          });
        $("#bonus").click(function(){
      $("#maincontent").load('inc/php/bonusabrechnung.php');
          });
        $("#csv_read").click(function(){
      $("#maincontent").load('inc/php/csv_read.php');
          });
     
        });
      </script>
    ]

    Beide Dateiien arbeiten ansonsten problemlos. rufe ich sie direkt im Browser auf, bekomme ich die gewünschten Ergebnisse. der sobrechner errechnet über Eingabefelder eine Gesamtarbeitszeit aus, was er tadellos macht und bei Erreichen eines Schwellwerts ein alert auslöst. Die Bonusabrechnung beispielsweise liest eine Tabelle aus einer Datenbank und filtert sie nach einem Drop Down Feld, das aus einer anderen Tabelle gefüllt wird.

    In beiden Fällen sehe ich aber kein Ergebnis, wenn ich die Dateien in die index Datei laden und sie ausführen lasse. Interessanterweise wird das Drop Down Feld aber richtig befüllt, was mich denken lässt, dass das script an und für sich funktioniert und ich nur ein Problem mit der Ausgabe habe?

    Hier der Teil des scripts, der die Ausgabe (einen Teil davon) macht:
    Code:
    [...] 
    $lp_array = preg_split("/\//", $lpsumme);
      natsort($lp_array);
      $count = array_count_values ( $lp_array );
        while ( list ( $key, $val ) = each ( $count ) )
      {
      //
      $ergebnis = mysqli_query($db, "SELECT*FROM lvz");
      /*$wert = $row->lv_varia;*/
      while($row = mysqli_fetch_object($ergebnis))
      {
       
      if($row->position == $key){ 
      $wert = $row->lv_varia;
      $summe = $wert*$val;
      $summelp = $summelp + $val;
       
      }
      }
      //
      $gesamtsumme = $gesamtsumme + $summe;
      echo'<tr>';
      echo'<td class="td1">'.$key.'</td><td class="td2">'.$val.'</td><td class="td4">'.number_format($wert, 2, ',', '.').' &#8364</td><td class="td4">'.number_format($summe, 2, ',', '.').' €</td>';
      echo'</tr>';
      }
      echo'<tr><td></td><td></td><td><b><br />Summe gesamt</b></td><td class="tdright"><br /><b>'.number_format($gesamtsumme, 2, ',', '.').' €</b></td></tr>';
     
    [...]
    Im Javascript ist ein Link, über den die Datei sich selbst neu laden soll, das macht sie auch, indem sie quasi wieder auf die Startseite verweist. Sie soll aber nur sich wieder aufrufen. Rufe ich sie direkt im Browser auf,macht sie das auch. Aber die Berechnungen laufen eben (scheinbar?) nicht.
    Code:
     <ahref="javascript:location.reload()">alle Felder neu laden</a>
    Ich hoffe, das war jetzt nicht zu wirsch und einigermaßen verständlich. Ich möchte, dass die Scripte das, was sie sonst auch machen, eben an der Position des <div> machen, in dem sie aufgerufen werden.

    Ich freue mich über jede Hilfe und hoffe, ich habe jetzt nicht grundsätzlich alles falsch gemacht. Wenn ja, übt bitte Nachsicht, ich werde in zukünftigen Posts bestimmt "besser".
    '
    Vielen Dank und einen ruhigen Abend

    Jens


  • #2
    Jeder Browser hat Development Tools (z.b. https://developer.chrome.com/devtools). Dort kannst du genau sehen, was dein JavaScript macht, ob die Scripts gefunden werden und was sie ausgeben. Damit solltest du den Fehler eingrenzen können.
    Ich tendiere im Moment zu einem falschen Pfad. Oder die id-s der Elemente stimmen nicht. Oder so irgendetwas. Aber das kannst du nur selbst ergründen.

    Kommentar


    • #3
      Die IDs der Elemete stimmen. Sonst würden sie ja grundsätzlich nicht funktionieren.
      Das Pfadproblem habe ich auch im Verdacht. Interessanterweise greifen die Scripte auf die Datenbank zu. Und dazu müssen sie auch einen Pfad öffnen, um die Logindaten zu bekommen. Also wirkt es für mich erst einmal so, als seien die Pfade grundsätzlich ok. (alle relativ)

      Mir ist aufgefallen, dass ein anderes meiner Scripte letzlich doch eine Ausgabe bringt. Aber auf einer ganz neuen Seite, wo dann der "Rahmen" fehlt.
      Bette ich das ganze ein, wird die passende php Datei hier ausgeführt:
      HTML-Code:
      http://127.0.0.1/testumgebung/#
      Das Formular wird angezeigt und funktioniert auch, das dazugehörige script trägt Daten aus einem Formular in eine Tabellle ein (macht es!)
      Die Erfolgsmeldung per einfachem 'echo' kommt dann auf der Seite:
      HTML-Code:
      http://127.0.0.1/testumgebung/inc/php/addma.php
      Aber weder der Javascript-Rechner, noch das andere PHP-Script gibt seine Daten aus.

      DIe von Dir angesprochenen DEV Tools haben mir nicht viel gebracht. Aber das heisst nix, ich bleb auch da am Ball ,

      Kann das Problem damit zusammenhängen, dass die Module nicht im Quelltext stehen, sondern nur "nachgeladen" werden? Wenn ich einen Link zu einem der Scripte aufrufe, erscheint im Quelltxt ja auch keine Änderung, obwohl die Formulare angezeigt werden.

      Danke für die Geduld.

      Edit: hat jemand vernünftige Buchempfehlungen? Ich habe mir PHP7 und MYSQL aus dem Rheinwerk Verlag geholt. Aber ich möchte auch wissen, was die einzelnen Befehle tatsächlich machen. Mir fehlt eine echte Referenz. In den meisten Büchern finde ich immer nur "mit Befehl x kann man eine Datei einlesen". Aber was beispielsweise die Parameter zu bedeuten haben, wird oft nicht aufgeführt. ICh suche also eine Art php.net in Buchform, wenn es das gibt. und dasselbe gerne auch für Javascript und Ajax oder was man sonst noch braucht. Klingt vielleicht nach viel Stoff aber ich bin der Meinung, wenn ich verstehen will, wie etwas funktioniert, dann muss ich sowas wissen. Dass soclhe Literatur nicht für 10 Euro zu bekommen ist, ist mir klar und auch nicht ausschlaggebend.

      Kommentar


      • #4
        Du musst über die Devtools gehen. Du hast dort einen Reiter Console. Dort würden JavaScript-Fehler angezeigt. Also den offen haben und die Seite laden und deine Buttons drücken. Dann siehst du ob dort grundsätzlich alles stimmt.

        Wenn dem so ist hast du dort einen Reiter Network. Wenn du einen deiner Buttons drückst und er eine Seite nachladen soll muss dort ein neuer Eintrag erscheinen. Sollte er das Script nicht finden ist der Eintrag rot. Wenn er nicht rot ist hat er das Script gefunden. Dort kannst du dir dann auch die Response ansehen, d.h. schauen was das Script dir zurückliefert.

        Kommentar


        • #5
          Super, Danke für den Tipp! Versuche ich sofort.

          Kommentar

          Lädt...
          X