Ich verwende DjangoWie eine Variable von Javascript senden in django zum Ansehen
Ich habe eine Vorlage, die eine Form und die Benutzer enthalten können erzeugen ein div ich es, wie sie brauchen „Teamcard“ so viel genannt. Danach senden sie das Formular mit allen "Teamcard" Informationen zur Ansicht. Das Problem ist, dass ich die Zählung des generierten Formulars nicht von Javascript an die Ansicht senden kann, da ich eine For-Schleife brauche, um alle "TeamCard" in der Datenbank zu speichern. Bitte informieren Sie mich, wie der Zähler von Javascript senden hier, um meine Codes sind:
var counter = 0;
function member_card()
{
counter += 1;
document.getElementById('name').setAttribute('name', 'name'+counter);
document.getElementById('job').setAttribute('name', 'job'+counter);
document.getElementById('explain').setAttribute('name', 'explain'+counter);
document.getElementById('linkedin').setAttribute('name', 'linkedin'+counter);
document.getElementById('gendermale').setAttribute('name', 'gender'+counter);
document.getElementById('genderfemale').setAttribute('name', 'gender'+counter);
var newFields = document.getElementById('teamform').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i=0;i<newField.length;i++) {
var theName = newField[i].name;
\t \t if (theName)
\t \t \t newField[i].name = theName + counter;
}
var insertHere = document.getElementById('formhere');
\t insertHere.parentNode.insertBefore(newFields,insertHere);
}
window.onload = member_card;
function count() {
return counter;
}
<form id="form1" runat="server" action="{% url 'landingpages:registerfinal' s_id.id %}"
method="post">
{% csrf_token %}
<div name="membercard" class="row">
<div id="teamform" class="col-md-4" style="display: none">
<!--
<div name="imageholder" class="row tm-image-holder">
<div class="col-md-12" style="text-align: center">
<img id="myimg" style="height: 200px;text-align: center;">
</div>
</div>
<input id="photoinput" type="file" class="btn btn-block btn-lg btn-primary inout-margin
mybut">
-->
<input id="name" name="name" type="text" class="add-input input-margin"
placeholder="Name, Mohammad, ... *">
<input id="job" name="job" type="text" class="add-input input-margin"
placeholder="Job, Developer, Designer, ... *">
<input id="linkedin" name="linkedin" type="text" class="add-input input-margin"
placeholder="linkedin.com/Me">
<textarea id="explain" name="explain" class="add-textarea input-margin" rows="4"
placeholder="Explain this member in 2 to 4 lines *"></textarea>
<input type="radio" id="gendermale" name="gender" value="male"> Male
<input type="radio" id="genderfemale" name="gender" value="female"> Female
</div>
<span id="formhere"></span>
</div>
<div name="addform" class="row input-field">
<div class="col-md-12" style="text-align: left">
<a onclick="member_card()">+ Add Team Member</a>
</div>
</div>
<div class="row">
<input type="submit" name="membersubmit" value="Next Step" class="btn btn-primary mybtn3">
</div>
</form>
Ein Weg, es könnte zu tun, verarbeitet die Werte in JavaScript und dann einen Ajax-Aufruf zu der Ansicht machen und die Daten senden. Verwenden Sie beispielsweise JQuery.post() http://api.jquery.com/jquery.post/ – dquinonez
Wenn Sie mehrere Formulare haben, sollten Sie eine normale Schaltfläche (keine Übergabeschaltfläche pro Formular) haben und ein Klickereignis in erstellen JQuery, um alle Formulare zu verarbeiten. – dquinonez