Erfolg Funktion in ajax in django

in Aussicht:

return render_to_response("main.html", RequestContext(request, {'form':form, "result":result}))

in der Vorlage habe ich diese jquery-Funktion:

$('#submitButton').click(function(e) {
            e.preventDefault();
            var dataPosted = $("#mainSubmit").serialize();
            $.ajax({
                type: "POST",
                data: dataPosted,
                url: 'main/',
                success: function(data) {
                    $("#mainDiv").html(data);
                    $(".response").html({{ result }});
                    $(".response").show();
                }
            });
        });
    });

<div id="mainDiv" class="part">
    <form id="mainSubmit" action="main/" method="POST" name="submitForm">
        {% csrf_token %}       
            {{ form.non_field_errors }}
            {{ form.as_p }}
        <input type="submit" value="Submit" id="submitButton"/>
        <div class="response"  style="display: none;"></div>
    </form>
</div>

aber es scheint, dass die Daten können nicht zugeordnet werden div Antwort wie diese(es scheint, data ist nicht definiert). Also ich weiß nicht, was ist der Weg, um Daten zu senden-Vorlage. wenn ich Httpresponse(result) im Blick, dann kann ich nicht meine form aktualisiert, und ich kann nur display in response div Daten, die ich senden Sie. also, was ist der Weg?

BEARBEITEN:
Dies ist meine Aussicht. bevor ich nicht andere für den Zustand, wenn die form.is_valid(): , aber hier verwende ich, weil ich denke, wenn ich dies nicht tun, könnte es dazu führen, dass einige probables. ich weiß nicht, was ist der beste Weg.

def mainFunc(request):
    if request.is_ajax():        
        if request.method == 'POST':
           form = mainForm(request.POST)
              if form.is_valid():             
                 //process the form     
                 result = "successful"
                 to_json = {'form':form, 'result':result}
                 return HttpResponse(json.dumps(to_json), mimetype='application/json')
              else:
                  result = ""
                  to_json = {'form':form, 'result':result}
                  return HttpResponse(json.dumps(to_json), mimetype='application/json')
        else:
            form = mainForm()
            return render_to_response('main.html', RequestContext(request, {'form':form}))
    else:
        return render_to_response("ajax.html", {}, context_instance=RequestContext(request))
  • Sie haben mehr detail. Die erste code-Beispiel ist aus views.py aber es scheint, um die Ansicht, dass macht die ganze Seite. Wo ist die Methode, die eine Antwort auf die Formular-POST-Aktion? Ist das nicht das gleiche? Auch die Aktion " main/'. Das ist keine absolute URL. Bist du nicht am Ende mit " main/main/main/' - URLs? Gibt es Daten kommen zurück auf allen von den form submit? (Hinweis: verwenden Sie firebug oder so ähnlich)
  • Das kann nicht funktionieren: $(".response").html({{ result }});
  • Ich bearbeitet meine Frage. vielen Dank 🙂
InformationsquelleAutor user1597122 | 2012-11-27
Schreibe einen Kommentar