[英]how to add a variable value to a hyperlink
這是我的功能:問題是我不知道如何在“鏈接”中添加“值”。
function add_subject_to_subjects_list() {
var value = $("#id_name").val();
var link = "/subject/create/"+value;
show_subjects_list();
$("#btn-create-subject").click(function() {
$.post(link, function(data) {
show_subjects_list();
alert(data).hide("fast");
});
});
}
因此,我的函數將數據發布到其他鏈接: http://127.0.0.1:8000/subject/create/
: http://127.0.0.1:8000/subject/create/
: http://127.0.0.1:8000/subject/create/
但我希望我的鏈接取決於價值:它應該看起來像:
http://127.0.0.1:8000/subject/create/some_value/
這就是該頁面的整個js:
$(document).ready(function (){
add_subject_to_subjects_list();
});
function show_subjects_list() {
$.post("/subject/list/", function(data){
for( var i=0; i<data.length; i++) {
$("#list").append('<li>'+data[i]['fields']['name']+'</li><br>');
};
}, 'json');
}
function add_subject_to_subjects_list() {
var value = $("#id_name").val();
var link = "/subject/create/"+value;
show_subjects_list();
$("#btn-create-subject").click(function() {
$.post(link, function(data) {
show_subjects_list();
alert(data).hide("fast");
});
});
}
那是我的服務器端(我正在使用Django / Python):
@csrf_exempt
def subjects_list(request):
user = request.user
subjects = Subjects.objects.filter(user__exact = user)
result = serializers.serialize("json", subjects, fields=('name'))
return HttpResponse(result)
@csrf_exempt
def new_subject(request, subject):
subject, created= Subjects.objects.get_or_create(
name=subject,
user=request.user,
created_by=request.user)
if created:
message = "Subject was created"
else:
message = "No subject was added to the database"
return HttpResponse(message)
那就是我的html:
{% block left-menu %}
<div class="sidebar">
<h3>Subjects</h3>
<p> Enter subject name to add </p>
<br>
<div id="create-subject">
<form method="post" action="."> {% csrf_token %}
{{ subject_creation_form.as_p }}
<input type="button" value="Create Subject" id="btn-create-subject" />
</form>
</div>
<div id="subjects-list">
<a id="append">myID</a>
<ul id="list">
</ul>
</div>
</div>
{% endblock %}
這是該html的形式:
class SubjectCreationForm(forms.Form):
name = forms.CharField(label="Subject Name", widget=forms.TextInput(attrs={'size':9}))
class Meta:
exclude = ('created_by', 'created_time', 'num_of_followers', 'vote')
def clean_name(self):
name = self.cleaned_data['name']
if len(name)>1:
return name
else:
raise forms.ValidationError("Subject name should be longer")
單擊處理程序附加在頁面加載上,並且使用id_name
的值(當時我認為是空的), id_name
在單擊按鈕時使用id_name
的值。
function add_subject_to_subjects_list() {
show_subjects_list();
$("#btn-create-subject").click(function() {
$.post("/subject/create/"+$("#id_name").val(), function(data) {
show_subjects_list();
alert(data);//.hide("fast");
});
});
}
也對show_subjects_list
做同樣的show_subjects_list
就像@nnnnnn建議的那樣,前兩行代碼必須放在$ .post內,如下所示:
......
$("#btn-create-subject").click(function() {
var value = $("#id_name").val();
var link = "/subject/create/"+value;
$.post(link, function(data) {
alert(data);
});
.......
謝謝大家)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.