如何为谷歌应用引擎制作切换按钮

时间:2014-01-05 19:49:28

标签: javascript jquery python google-app-engine toggle

我正在尝试设置切换按钮以添加朋友(例如在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")

1 个答案:

答案 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”的任何实例进行了支持或未实现,但我将其留给您自己的想象。