我正在尝试设置切换按钮以添加朋友(例如在Snapchat中)。
现在我的html使用复选框和提交按钮
{% for u in u %}
{{u.name}} <input type="checkbox" name = "checkbox" value="{{u.name}}">
{% endfor %}
如果提交了复选框,则将用户添加为朋友。我查看了jQuery文档,唯一的切换功能是隐藏,显示和操作动画。
帮助?
编辑: 我尝试将AJAX插入到一个有foo的测试文件中(裸露我的初学者代码),这样当我检查复选框时,AJAX会通过post方法向服务器发送“foo”...但是当我检查时没有任何反应复选框。
<form method = "post">
Foo <input type="checkbox" onclick = "toggle();" class = "login_button" name = "checkbox" value="Foo">
</form>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script type="text/javascript" language="javascript">
function toggle() {
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
//when server is ready
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
var value = document.getElementsByName('checkbox')
}
}
xmlhttp.open("POST","/test",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("value=" + value);
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", "/test", true);
xmlHttp.addEventListener("load", ajaxCallback, false);
xmlHttp.send(null);
function ajaxCallback(event){
alert( "Your file contains the text: " + event.target.responseText );
}
}
</script>
</form>
当我想用“foo”作为值创建TestModel的新实例时,我有
class TestModel(db.Model):
value = db.StringProperty(required = True)
和
class Test(Handler):
def get(self):
if self.user:
values = TestModel.all()
self.render("ajaxtest.html", values = values)
else:
self.redirect("/signup")
def post(self):
value = self.request.get('checkbox')
if value:
value = TestModel(value = value)
value.put()
self.write("success")
答案 0 :(得分:0)
您的问题与Google App Engine
几乎没有关系。您可能想要的是,从查看您的代码片段,HTML模板构造中有一个复选框,表明某人是朋友。
类似的事情(将您的代码段作为离开,未经测试):
{% for u in u %}
{{ u.name }}
{% if u.is_friend() %}
<input type="checkbox" id="checkbox-{{ u.pk }}" checked="checked">
{% else %}
<input type="checkbox" id="checkbox-{{ u.pk }}">
{% endif %}
{% endfor %}
以上只是一种可能的解决方案。工作解决方案有多种可能性,但您必须在问题中更加具体。
显然,一旦提交表单,您将不得不进行进一步处理,以检查用户是否对您命名为“u”的任何实例进行了支持或未实现,但我将其留给您自己的想象。