【问题标题】:Building Ajax Form in Google App Engine在 Google App Engine 中构建 Ajax 表单
【发布时间】:2008-10-17 10:22:24
【问题描述】:

我有一个表单,当我单击提交按钮时,我想与服务器通信并从服务器获取一些内容以显示在同一页面上。一切都必须以 AJAX 方式完成。如何在 Google App Engine 中执行此操作?如果可能的话,我想用 JQuery 来做。

编辑:code.google.com/appengine/articles/rpc.html 中的示例不适用于表单。


编辑:rpc 过程doesn't work for form

【问题讨论】:

  • 我用的是RPC方法,效果很好。自从我在几个页面上使用它以来,我使它变得更加健壮,但它基本上是相同的。所以,如果它不工作,你做错了什么。如果您遇到特定错误,请将其发布,也许我会知道发生了什么。

标签: jquery ajax google-app-engine


【解决方案1】:

您可以使用jquery Form plugin 使用ajax 提交表单。效果很好。

$('#myFormId').submit(function() {
    // submit the form
    $(this).ajaxSubmit();
    return false;
});

【讨论】:

    【解决方案2】:

    我会在 Firebug 中添加它,您应该会在控制台中看到您的 ajax 调用弹出。如果您在打开该地址时遇到异常,则说明您的 Python 代码有问题。也许您没有正确映射您的网址?

    【讨论】:

      【解决方案3】:

      我之前在 jQuery 中使用过类似的方法(不确定它是否是“最佳”方式,但它有效):

      function jsonhandler(data) {
         // do stuff with the JSON data here
      }
      
      var doajax = function () {
          arr = Object();
          $("#form_id").children("input,select").each(function() { arr[this.name] = this.value;});
          $.getJSON("<page to call with AJAX>", arr, function (data) { jsonhandler(data);});
      }
      
      $(document).ready(function () {
          $("#submit_button_id").replaceWith("<input id=\"sub\" name=\"sub\" type=\"button\" value=\"Submit\">");
          $("#sub").click(doajax);
      }
      

      您可以将 $.getJSON 替换为 whichever jQuery AJAX function does what you want。如果您只想显示您正在调用的页面的输出,那么 $.get 可能是您最好的选择。如果您的表单中除了 input 和 select 之外还有其他输入类型,您还需要将它们添加到子函数中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        • 1970-01-01
        • 2011-05-29
        • 2014-05-29
        • 2019-03-09
        • 2012-07-08
        相关资源
        最近更新 更多