Ankündigung

Einklappen
Keine Ankündigung bisher.

DIV wird nach neuem Aufbau immer zurückgesetzt

Einklappen

Neue Werbung 2019

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

  • DIV wird nach neuem Aufbau immer zurückgesetzt

    Hallo,
    ich habe mich bisher immer mit PHP durchgeschlagen und möchte mich nun etwas weiter mit JS / Ajax beschäftigen.
    Meine Seiten laufen zur Arbeitserleichterung eigentlich nur auf einem internen Webserver, also ohne öffentlichen Zugriff.

    Nun zum eigentlichen Problem:

    Ich habe eine Indexseite mit include-Dateien in drei DIV

    Code:
               <div id="menu" class="col-md-2">
                    <?php include("page_navigation.php")?>
                </div>    
    
                <div id="suchzeile" class="col-md-10">
                    <?php include("page_suchzeile.php")?>
                </div>    
    
                <div id="daten" class="col-md-10" >
                    <?php include("page_doku_daten.php")?>
                </div>

    aus dem "page_suchzeile_include.php" wir ein Script aufgerufen, das die Daten bereitstellt:

    Code:
    //Suchbutton
    document.getElementById("dokuSuchen").addEventListener("click", function(){
        suche = 'page_doku_daten_suche.php?suchbegriff='+document.formSuchzeile.suchbegriff.value;
        $.get(suche, function(data) {$('#daten').html(data);});    
        alert('Schluss');
        });

    Im Prinzip funktioniert das auch, wenn ich das Alert am Ende drin lasse, sehe ich das richtige Ergebnis. Sobald ich das Alert schliesse, wird wieder ''page_doku_daten.php" angezeigt. Ohne Alert blitzt also das Suchergebnis nur kurz auf. Wo liegt mein Fehler?

    Grüße
    Michael

  • #2
    So ganz nachvollziehen lässt sich das anhand des dargelegten Codes nicht.

    Grundsätzlich:
    - JavaScript gehört nicht in php-Dateien sondern in separate js-Dateien. Die holst du Dir dann über den script-Tag rein.
    - AJAX läuft asynchron, d.h. Dein alert wird gefeuert bevor die Daten zurück sind. Möchtest du den alert haben nachdem die Daten zurück sind müsste der in die Erfolgs-Funktion des get-aufrufs.

    Für eine detailliertere Auskunft müsstest du mehr zeigen.

    Kommentar


    • #3
      Zitat von jonas3344 Beitrag anzeigen
      So ganz nachvollziehen lässt sich das anhand des dargelegten Codes nicht.

      Grundsätzlich:
      - JavaScript gehört nicht in php-Dateien sondern in separate js-Dateien. Die holst du Dir dann über den script-Tag rein.
      das JavaScript ist natürlich in einer externen Datei. Das hier war nur ein Auszug. Ich habe noch einige weiter (Verständnis-?) Problemchen. Oft hilft ja aber ein kleiner Tipp, um das zu lösen.

      Die Seite wird zu großen Teilen aus MySQL zusammengebaut. Ich kann morgen gerne den generierten Quelltext posten, wenn das hilft.

      Grüße
      Michael

      Kommentar


      • #4
        Zitat von schalke Beitrag anzeigen
        Die Seite wird zu großen Teilen aus MySQL zusammengebaut. Ich kann morgen gerne den generierten Quelltext posten, wenn das hilft.
        Nicht den ganzen Quelltext aber so viel dass sich das Verhalten nachvollziehen lässt - und v.a. keinen PHP-Quelltext, der ist für ein JS-Problem irrelevant.

        Kommentar


        • #5
          liegt der Button "dokuSuchen" in einem Form Element?

          Kommentar


          • #6
            Zitat von kaminbausatz Beitrag anzeigen
            liegt der Button "dokuSuchen" in einem Form Element?
            Ja

            Kommentar


            • #7
              Hier dann mal die Quelltext-Auszüge
              1. page_suchzeile.php:
              Code:
              <div id="suchzeile" class="col-md-10">
                  <form class="form-inline" name="formSuchzeile">
                      <input type="text" name="suchbegriff" size="50" placeholder="Suchen..." autocomplete="off">
                      <button id="dokuSuchen">Suchen</button>
                      <button id="neuerEintrag">neuer Eintrag</button>
                      <button id="testButton">Testbutton</button>
                  </form>
              </div>
              und
              page_doku_daten.php (stark gekürzt mit nur wenigen Einträgen die aus MySQL kommen)

              Code:
              <div id="daten" class="col-md-10">
                  <table id='eintragZeilen' class="table table-condensed table-bordered table-hover">
                      <tr>
                          <th width='120' align="center">Datum</th>
                          <th width='120' align="center">Einheit</th>
                          <th width='120' align="center">Untereinheit</th>
                          <th width='450' align="center">Betreff</th>
                          <th width='120' align="center">g&uuml;ltig ab</th>
                          <th width='120' align="center">g&uuml;ltig bis</th>
                          <th width='50' align="center">von</th>
                      </tr>
                      <tr id='16'>
                          <td nowrap align=center>04.03.2020 09:36</td>
                          <td nowrap align=left>Einheit 1</td>
                          <td nowrap align=left></td>
                          <td nowrap align=left>Info zum Eintrag 1</td>
                          <td nowrap align=center></td>
                          <td nowrap align=center></td>
                          <td nowrap align=left>MSC</td>
                      </tr>
                      <tr id='15'>
                          <td nowrap align=center>04.03.2020 08:43</td>
                          <td nowrap align=left>Einheit 2</td>
                          <td nowrap align=left>Schlange</td>
                          <td nowrap align=left>Ganz viel Infotext Betreffzeile</td>
                          <td nowrap align=center></td>
                          <td nowrap align=center></td>
                          <td nowrap align=left>MSC</td>
                      </tr>
                      <tr id='14'>
                          <td nowrap align=center>26.02.2020 14:29</td>
                          <td nowrap align=left>Einheit 4501</td>
                          <td nowrap align=left>Wagen 1</td>
                          <td nowrap align=left>Wagen 1 / Wagen 2</td>
                          <td nowrap align=center></td>
                          <td nowrap align=center></td>
                          <td nowrap align=left>MSC</td>
                      </tr>
                      <tr id='13'>
                          <td nowrap align=center>19.02.2020 11:01</td>
                          <td nowrap align=left>Einheit VS</td>
                          <td nowrap align=left>VS 2/10-4</td>
                          <td nowrap align=left>Noch mehr Infotext Betreffzeile</td>
                          <td nowrap align=center></td>
                          <td nowrap align=center></td>
                          <td nowrap align=left>MSC</td>
                      </tr>
                  </table>
              </div>
              Das Menü-Div dürfte nicht relevant sein

              PS: Zeilenumbrüche jetzt eingefügt

              Kommentar


              • #8
                Zitat von schalke Beitrag anzeigen

                Ja
                Das beantwortet wohl die Frage.

                Du fängst den Button click ab, erledigst den Kram, dann wird alert ausgeführt, das System wartet bis zur Bestätigung und führt dann form submit aus. Es wird alles so ausgeführt, wie du das programmiert hast...

                Zum Zeilenumbruch, wenn man sieht, dass der Editor alles in eine Zeile schmeißt, dann muss man wohl oder über nochmal ran und das händisch in Ordnung bringen.

                Für mich sind das Anzeichen von Arroganz und Faulheit...


                Kommentar


                • #9
                  Zitat von schalke Beitrag anzeigen
                  Ja
                  Das habe ich mir schon gedacht: du registrierst einen click-Handler, unterbindest aber nicht das Standardverhalten (=Absenden des Formulars) beim Klick auf den Button.

                  Dein HTML-Code ist reif für die Tonne: in der Suchzeile hast du 3 Buttons ohne name-Attribut - wie soll der Server unterscheiden welcher geklickt wurde (nein, Javascript ist nicht immer verfügbar, das sollte auch ohne Javascript funktionieren!). Die Datentabelle hat jede Attribute die da nichts zu suchen haben und durch CSS ersetzt werden sollten, zudem verst&uuml;mmelt der Code v&ouml;llig unn&ouml;tig Umlaute.

                  Kommentar


                  • #10
                    Zitat von kaminbausatz Beitrag anzeigen

                    Das beantortet wohl die Frage.

                    Du fängst den Button click ab, erledigst den Kram, dann wird alert ausgeführt, das System wartet bis zur Bestätigung und führt dann form submit aus. Es wird alles so ausgeführt, wie du das programmiert hast...

                    Zum Zeilenumbruch, wenn man sieht, dass der Editor alles in eine Zeile schmeißt, dann muss man wohl oder über nochmal ran und das händisch in Ordnung bringen.

                    Für mich sind das Anzeichen von Arroganz und Faulheit...
                    Oh, schlechte Laune?

                    Dau liegst nicht ganz richtig.Ich habe den Quelltext der Seite anzeigen lassen und dort mit Umbrüchen rauskopiert. In meinem Enwurf des Beitrags wars auch richtig angezeigt. In der Vorschau kam dan das gezeigte Ergebnis. Ich habe die Umbrüche dann erneut manuell (sogar mit Leerzeilen versucht) einzufügen, das hat aber nichts geändert. Daher habe ich freundlich darauf hingewiesen.

                    Ich kann Dir versichern, das ich weder arrogant noch faul bin.

                    Grüße
                    Michael

                    Kommentar


                    • #11
                      Zitat von tk1234 Beitrag anzeigen
                      Das habe ich mir schon gedacht: du registrierst einen click-Handler, unterbindest aber nicht das Standardverhalten (=Absenden des Formulars) beim Klick auf den Button.

                      Dein HTML-Code ist reif für die Tonne: in der Suchzeile hast du 3 Buttons ohne name-Attribut - wie soll der Server unterscheiden welcher geklickt wurde (nein, Javascript ist nicht immer verfügbar, das sollte auch ohne Javascript funktionieren!). Die Datentabelle hat jede Attribute die da nichts zu suchen haben und durch CSS ersetzt werden sollten, zudem verst&uuml;mmelt der Code v&ouml;llig unn&ouml;tig Umlaute.
                      Gut das hilft mir schonmal weiter, dann werde ich da mal eine Lösung suchen.

                      Kommentar


                      • #12
                        Lass Deinen generierten Code validieren, dann siehst du was veraltet ist und was du anpassen solltest:

                        https://validator.w3.org/

                        Kommentar


                        • #13
                          Zitat von schalke Beitrag anzeigen
                          Hier dann mal die Quelltext-Auszüge

                          PS: Sorry, jetzt hats irgendwie die Zeilenumbrüche rausgehauen...
                          dann mach die halt wieder rein.
                          Ergebnis. Ich habe die Umbrüche dann erneut manuell (sogar mit Leerzeilen versucht) einzufügen, das hat aber nichts geändert. Daher habe ich freundlich darauf hingewiesen.
                          Alle anderen schaffen das auch, komisch gell.
                          Ich verstehe nicht, wieso man so müllig geposteten Code durchliesst, gar nicht, bei So einem TE erst recht nicht.

                          Wie dem auch sei, unter board support(?) steht was von wegen beautifier, da wird Dir erklärt wie Du hier Code Posten kannst.

                          Kommentar


                          • #14
                            Zitat von jonas3344 Beitrag anzeigen
                            Lass Deinen generierten Code validieren, dann siehst du was veraltet ist und was du anpassen solltest:

                            https://validator.w3.org/
                            Okay, das sieht gar nicht gut aus - dann mache ich mich da erstmal dran. Ich möchte aber zu meiner Entschuldigung anführen, dass ich die letzte Tage sehr viel daran rumgespielt und probiert habe und halt viele (erfolglose) Versuche einfach noch im Text drinsteheln, ohne dass sie nützen oder reingehören.

                            Grüße
                            Michael

                            Kommentar


                            • #15
                              Zitat von schalke Beitrag anzeigen
                              Oh, schlechte Laune?
                              Nein, mich ärgert das halt, alles gut...

                              Kommentar

                              Lädt...
                              X