Datenbank mit Ajax modernisieren

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Snowflake schrieb:

    Auch wenn das ganze jetzt Offtopic ist, sorry. Aber mich würde es mal interessieren nach der ganzen Mühe mit der Erklärerei ob es hilfreich war und du es alles hinbekommen hast Billie?


    Hi Snowflake, sorry das ich mich in den letzten zwei Wochen nicht gemeldet habe. Ich bin für Deine Mühe und natürlich auch der anderen sehr dankbar :) Allerdings hab ich gemerkt, dass ich einige Sachen bei JavaScript noch nicht verstehe, weshalb ich jetzt erstmal ordentlich JavaScript Literatur angeschafft habe und mich da durcharbeite, um mehr zu verstehen ^^

    Ich habe natürlich versucht das hinzubekommen, allerdings wieder mit der gleichen Fehlermeldung.

    "Man übergibt keinen String als Parameter"...damit ist doch der Aufruf aus dem php-Skript gemeint, oder?
  • Hey klar ich doch kein Problem. Ich wollte ja nur einfach mal fragen wie es bei dir so läuft. ^^

    Jein es ist der Aufruf insgesamt gemeint.

    Schau mal im Wiki Beitrag wird es so aufgerufen im Form onsubmit tag.

    Quellcode

    1. getFormData(this)


    Bei deinem Script sieht es so aus:

    Quellcode

    1. getFormData('opt_haken')


    Also müsstest es eigentlich klappen, wenn du es entweder so anwendest.

    Quellcode

    1. getFormData(this.opt_haken)

    oder aber getFormData benötigt das komplette Formular.
    Dann solltest du dem Formular ein Namen zuweisen, und es dann halt mit

    Quellcode

    1. (this.formname)
    definieren
  • Hi Snowflake, ich habe den entsprechenden Aufruf im PHP-Skript verändert und jeweils beide Versionen ausprobiert und erhalte jetzt den folgenden Hinweis.

    getFormData(undefined, undefined)java.js (Linie 43)
    onclick(click clientX=44, clientY=175)qqQExaPG...GzA%3D%3D (Linie 2)
    for(var i=0; i<form.elements.length; i++) {

    Ich habe der Form jetzt den Namen ajax gegeben

    Quellcode

    1. <form name="ajax" action="" method="post">
    und hier nochmal der Aufruf

    Quellcode

    1. echo "<input type='button' name='cmd_loeschen' value='Löschen' onClick=\"ajaxPost('ajax.php', 'ajax&'+getFormData(this.ajax),'tabelle','loeschen');\">";


    Wenn ich mir den Fehlerhinweis anschaue, liegt es wohl an dem Parameter, der übergeben wird?

    Bitte nicht denken, dass mich das Geschehen hier nicht interessiert, wenn ich in den nächsten Tagen nicht antworte, aber ich verreise mit meiner Familie heute (Montag) und kann dann erst wieder am kommenden Montag antworten
  • Da bin ich wieder...frohes neues Jahr erstmal :)

    Ich habs mit getFormData(this.form) probiert, da bekomm ich den Hinweis auf Zeile 14 im JavaScript
    document.getElementById("tabelle").elements is undefined
    onreadystatechange

    Ich vermute, dass der Fehler bei .getElementById("tabelle") liegt...wird hier vielleicht der Formularname verlangt?
  • d0nut schrieb:


    Kannst du deinen Code nicht mal online stellen?


    natürlich...im Anhang befindet sich einmal das PHP-Skript, dann der Java-Code, die Zugangsdaten zur Datenbank und ein Dump-File, falls jemand Interesse hätte, sich sie die kleine Test-DB anzulegen.

    Der dump müsste allerdings die Endung *.sql haben, musste das abändern, damit ich es hochladen kann, genau wie bei den anderen Scripten.
    Dateien
    • java.txt

      (2,47 kB, 180 mal heruntergeladen, zuletzt: )
    • php.txt

      (3,25 kB, 192 mal heruntergeladen, zuletzt: )
    • verbindung.txt

      (303 Byte, 159 mal heruntergeladen, zuletzt: )
    • dump.txt

      (903 Byte, 175 mal heruntergeladen, zuletzt: )
  • eine komplette Testumgebung wollte ich mir dann doch nicht einrichten.
    Das Problem umkreist einzig und allein "html + javascript" - ich will es also auf dieser Ebene lösen. Ich hatte gehofft du könntest es auf deinem Webspace installieren.

    Die Fehlermeldung stammt doch aus dieser Funktion... und genau aus der Zeile die du selber eingefügt hast.

    Quellcode

    1. function ajaxPost(url, postData, callback, action) {
    2. ....
    3. req.onreadystatechange = function() {
    4. if (req.readyState == 4 && req.status == 200) {
    5. if(action == 'loeschen'){
    6. for(var i=0; i<document.getElementById('tabelle').elements.length; i++) {
    7. var el = tabelle.elements[i];
    8. var type = (el.type || '');
    9. if(type.match(/^(checkbox)$/i) && el.checked) {
    10. document.getElementById('spalte'+el.value).style.display = 'none';
    11. }
    12. }
    13. }
    14. }
    15. }
    16. }
    Alles anzeigen


    Verwende einfach das Original:

    Quellcode

    1. req.onreadystatechange = typeof callback == 'function' ? callback : function() {
    2. if (req.readyState == 4 && req.status == 200) {
    3. if(typeof callback == 'string') callback = document.getElementById(callback);
    4. if(callback) callback.innerHTML = req.responseText;
    5. }
    6. };
  • Hey, das sieht schon einmal wesentlich besser aus :thumbsup:

    Allerdings habe ich wohl ein Problem mit dem lokalen Server...muss mal schauen, wo der Fehler liegt. Wenn ich jetzt einen Datensatz lösche, sagt er mir, dass er ihn gelöscht hat - muss aber mal sehen, ob er es wirklich macht.

    EDIT: Es funktioniert :)

    Der lokale Server läuft wieder und ich konnte es testen. Vielen Dank an dieser Stelle nochmal an euch alle! Zwar sieht die Ausgabe noch nicht so gut aus, das spielt jetzt keine Rolle. Ich werde jetzt versuchen, eine Lösung für das Einfügen eines neuen Datensatzes hinzukriegen...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Billie ()