如何在使用和不使用JavaScript的情况下将数据发布到CouchDB

如何在使用和不使用JavaScript的情况下将数据发布到CouchDB,couchdb,Couchdb,我有一个显示表单的显示,其中包含从文档填充的字段。我想更改字段中的值,然后保存更新的文档 我很难找到一个清晰、简洁的例子来说明如何做到这一点 说真的,仅仅完成这个例子就可以为很多人创造奇迹(为了使这个简洁,我将省略很多内容) 安装Couchapp 这超出了我的问题范围,但以下是完整性的标准 创建一个couchapp 同样,这超出了我的问题范围。下面是一篇关于如何创建couchapp的非常简洁的文章 创建模板 在couchapp的根目录中创建一个名为templates的文件夹。在templates

我有一个显示表单的显示,其中包含从文档填充的字段。我想更改字段中的值,然后保存更新的文档

我很难找到一个清晰、简洁的例子来说明如何做到这一点

说真的,仅仅完成这个例子就可以为很多人创造奇迹(为了使这个简洁,我将省略很多内容)

安装Couchapp

这超出了我的问题范围,但以下是完整性的标准

创建一个couchapp

同样,这超出了我的问题范围。下面是一篇关于如何创建couchapp的非常简洁的文章

创建模板

在couchapp的根目录中创建一个名为templates的文件夹。在templates文件夹中创建一个名为myname.HTML的HTML页面。把下面的内容放进去

<html>
    <head>
        <title>{{ title }}</title>
    </head>
    <body>
        <form method='post' action='#'>
            <fieldset>
                Hello <input type='text' name='name' value='{{ name }}'>
                <input type='submit' name='submit' value='submit'>
        </form>
    </body>
</html>
通过…,使用新名称更新文档。

那么,谁可以通过客户端和服务器端完成这一步骤呢

请不要把指南指给我看,我需要用你的话来读

谢谢

编辑:


尽管返回值并不漂亮,但只要将表单发布到更新处理程序中,就会更新文档。

您可能需要查看一下

更新处理程序处理细粒度文档转换。因此,您可以使用一个表单,它有一个不同的用途,并且只通过更新处理程序更新文档中的相关字段

您的更新处理程序需要从表单中获取
PUT
请求。浏览器无法直接执行此操作,因此您需要一些javascript来处理此操作。如果您使用的是jQuery,那么它可以采用您的表单,并使用
PUT
通过AJAX无缝提交

在函数内部,您可以获取要接受的字段,在本例中为
name
,并将其直接应用于文档。(可通过功能处理输入验证)

更新处理程序(在设计文档中) HTML

JavaScript
一旦您启动并运行了这个基本示例,向更新处理程序添加一些更高级的功能就不难了。:)

谢谢。不过,关于代码还有一点需要注意。我注意到使用ajaxSubmit实际上将我的文件重定向到了更新处理程序,而使用ajaxForm只是显示了一个没有重定向的警报。
function(doc, req) { 
    if (doc) {  

        var ddoc = this
        var Mustache = require("vendor/couchapp/lib/mustache");

        var data = {
            title: "The Name",
            name: "Bobbert"
        }

        return Mustache.to_html(ddoc.templates.myname, data)
    } else {
        return ('nothing here baby')
    }
}
{
    "updates": {
        "name": function (doc, req) {
            doc.name = req.form.name;
            return [doc, "Name has been updated"];
        }
    }
}
$(document).ready(function() {
    $('#myForm').ajaxForm({
        type: "PUT",
        success: function () { 
            alert("Thank you"); 
        }
    }); 
});