2016-07-07 24 views
0

So nehme ich Daten aus einem HTML-Formular und dann mit AJAX, um die Daten an eine Web-Methode zu senden dann an eine SQLite-Datenbank gesendet werden, aber mein AJAX-Anruf ist Versagen. Was habe ich vermasselt? Mache ich es richtig?Verwenden Sie AJAX zum Senden von Daten aus HTML-Formular an WebMethod

HTML-Formular

<form id="addForm" > 
    <input type="text" name="playername" id="playername" placeholder="Player"/> 
    <input type="text" name="points" id="points" placeholder="Points" /> 
    <input type="text" name="steals" id="steals" placeholder="Steals" /> 
    <input type="text" name="blocks" id="blocks" placeholder="Blocks" /> 
    <input type="text" name="assists" id="assists" placeholder="Assists" /> 
    <input type="text" name="mpg" id="mpg" placeholder="MPG" /> 
    <input type="text" name="shotpct" id="shotpct" placeholder="Shot %" /> 
    <input type="text" name="threepct" id="3pct" placeholder="3 %" /> 
    <input type="button" value="add player" id="addbtn" name="addbtn" /> 
    </form> 

AJAX

$("#addbtn").click(function() { 
       var form = $("#addForm").serializeArray(); 
       $.ajax({ 
        type: 'POST', 
        url: "players.aspx/addRow", 
        data: JSON.stringify(form), 
        dataType: 'json', 
        success: function() { 
         alert('success'); 
        }, 
        error: function() { 
         alert('failure'); 
        } 
       }); 
        }); 

und die Web-Methode (nicht abgeschlossen, testet nur zu sehen, wenn ich Daten wurde immer)

[WebMethod] 
     public static void addRow(object form) 
     { 
      var stuff = form; 
     } 

Ich bin Ich lerne immer noch, wie man viel von diesem Zeug benutzt, damit jede Hilfe sehr geschätzt wird.

Antwort

0

ersetzen

type: 'POST', 

mit

method: 'POST', 

datatype: 'json' nicht, da Sie zurück sind nicht Empfangen von Daten benötigt wird. Die vom Server zurückgegebenen Daten werden entsprechend dem Parameter dataType formatiert.

Entfernen Sie auch JSON.stringify (form), dies wurde bereits mit der .serialize();

+0

Ja. Danke für Ihre Hilfe! – hereswilson

+0

Wie überprüfe ich, dass die Daten gesendet werden? – hereswilson

0

ersetzen

JSON.stringify(form) 

mit

$('form').serializeArray() 

So haben Sie:

$("#addbtn").click(function() { 
       var form = $("form").serializeArray(); 
       $.ajax({ 
        type: 'POST', 
        url: "players.aspx/addRow", 
        data: form, 
        dataType: 'json', 
        success: function() { 
         alert('success'); 
        }, 
        error: function() { 
         alert('failure'); 
        } 
       }); 
        }); 

Wenn Sie noch Fehler. Möglicherweise gibt es auf der von Ihnen aufgerufenen Seite ein serverseitiges Problem. Um das zu gewährleisten, schlage ich vor, dass Sie den "Erweiterten REST-Client" verwenden, der eine Google Chrome-Erweiterung ist, und Sie können die Buchungswerte damit testen und das Ergebnis sehen.

+0

Immer noch Fehler. Ich dachte, die "#addForm" bezog sich auf die ID des HTML-Formulars? – hereswilson

+0

ja Sie können es auch als $ ('# addForm') verwenden. Ich habe meine Antwort bearbeitet, bitte schaue bis zum Ende meiner Antwort. –

+0

Ich habe den genauen Code verwendet, den Sie gepostet haben, und ich bekomme immer noch die Fehlermeldung. Ich werde den Advanced Rest Client ausprobieren. – hereswilson