Form-Daten mittels AJAX an DB-Query

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

  • Form-Daten mittels AJAX an DB-Query

    Hallo Leute

    Ich habe mal versucht quer in AJAX einzusteigen, weil ich auf ein Chat-Tutorial gestossen bin. Ich habe den Code des Tuts ein bisschen angepasst, wie er mir besser gefiel. Das Auslesen klappt wunderbar, aber das Einfügen neuer Nachrichten in die DB will einfach nicht. Ich denke es ist ein relativ offensichtlicher Fehler.

    chat.html
    PHP-Code:
    /* message an db-query senden */
        
    function setChat()
        {
            var 
    inPutValue document.getElementById("input").value;
            
    http2.open("POST"urltrue);
            
    http2.send(inPutValue);
            
    document.getElementById("input").value="";
            
    document.getElementById("input").focus();
        }

        function 
    getHTTPObject()
        {
            var 
    xmlhttp;
            if (!
    xmlhttp && typeof XMLHttpRequest != 'undefined')
            {
                try
                {
                    
    xmlhttp = new XMLHttpRequest();
                }
                
                catch (
    e)
                {
                    
    xmlhttp false;
                }
            }
            return 
    xmlhttp;
        }

        var 
    http2 getHTTPObject();
    [...]
    <
    form>
     <
    input type="text" size="50" name="input" id="input" />
     <
    input type="button" value="chat" onclick="setChat();" />
    </
    form
    Und dann der Auszug der PHP-Datei chat.php:
    PHP-Code:
    if($_GET["module"]=="insertchat")
    {
        
    $text mysql_real_escape_string($_POST["input"]);
        
    $sql mysql_query("INSERT INTO message 
    (chat_id, user_id, user_name, message, post_time) 
    VALUE ('1', '1', 'Pascal', '
    $text', '".time()."')") or die(mysql_error());

    Ich hoffe mir kann jemand sagen, wo sich der Fehler eingeschlichen hat.

    EDIT Habe gerade herausgefunden, dass wenn ich nichts in das Feld "input" eingebe, dass dann ein Eintrag in die Datenbank gemacht wird, jedoch wenn ich etwas schreibe nicht. An was kann das liegen?
    Zuletzt geändert von pascal007; 02.02.2008, 15:47.

  • #2
    Das Auslesen klappt wunderbar, aber das Einfügen neuer Nachrichten in die DB will einfach nicht.
    Und ich will die Frage nicht beantworten, das ist nämlich keine Fehlerbeschreibung. Gib die Abfrage aus und schau ob du überhaupt in bis dorthin kommst.
    Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

    Kommentar


    • #3
      Wie soll ich denn dir Abfrage ausgeben? Ich komme von der chat.html Datei ja gar nie auf die chat.php-Datei. Wie soll ich also die SQL-Abfrage die in der chat.php gemacht wird ausgeben lassen und wohin?

      Kommentar


      • #4
        Extension Firebug für Firefox installieren.
        Download ET-Chat v3.x.x

        Kommentar


        • #5
          Oke, wenn ich jetzt in der Console schaue, dann sehe ich, welche Seiten aufgerufen werden, mit welchen Parametern. Wenn ich das Input-Feld "input" leer lasse und das Form absende, kommt der Eintrag in der console, dass die Seite aufgerufen wurde und unter der Lasche "Post" steht "input". Wenn ich das Input-Feld fülle und dann absende, kommt in der console gar nicht erst der Eintrag, dass die Seite aufgerufen wird.

          Und wenn ich etwas in das input-Feld schreibe, dann lädt die Seite auch irgendwie neu, sprich die console leert sich und fängt wieder mit null einträgen an, im Gegensatz wenn ich das "input"-Feld leer lasse und das Form absende, lädt die Seite nicht neu.

          Ich habe im übrigen noch die Zeile angepasst

          Ich habe das Problem gelöst .

          PHP-Code:
          <input type="button" value="chat" onclick="setChat();" /> 
          muss natürlich

          PHP-Code:
          <input type="submit" value="chat" onclick="setChat();" /> 
          sein. Das kommt davon wenn man Code einfach kopiert und ihn nicht genau anschaut und darauf vetraut, dass er stimmt .
          Zuletzt geändert von pascal007; 02.02.2008, 16:59.

          Kommentar

          Lädt...
          X