If your primary goal is to keep "DRY" (Don't Repeat Yourself) and avoid writing the same HTML multiple times, then there are simpler ways (than AJAX calls) to accomplish that.
You can actually do the complete templating in CouchDB using _show requests which us a Mustache.js (or similar) templating language and run the whole thing through the CouchDB server. You can use a _show request with any document. The show function receives the document as it's first parameter. You then load the templating engine (Mustache.js is likely perfect for what you're building), and run it through Mustache.to_html() returning the output.
Here's a bit more on _show functions:
http://guide.couchdb.org/draft/show.html
There is also a good set of blog posts on using jQuery Mobile + CouchDB + Mustache.js. The 3rd entry in the series talks about templating specifically:
http://custardbelly.com/blog/2010/12/28/jquery-mobile-couchdb-part-3-templates-and-mustache-js/
You shouldn't need everything he describes there (like jQuery Mobile), but the templating related portions seem to fit what you are building, and at least have clear _show function examples.
Additionally, there's nothing that prevents using PHP with CouchDB. It's just more (and generally unnecessary) overhead. You would be running an HTTP server + PHP in front of another HTTP server (the one in CouchDB). Regardless, it's completely possible, and there is value in that approach if you're doing things like image manipulation or sending emails, and don't want to build them as reactive events to the _changes feed (which is "deeper" into the greatness of CouchDB than you'll need at this point).
If you do go the PHP in front of CouchDB route, I'd recommend checking out Sag: http://saggingcouch.com/ It's the cleanest PHP library for CouchDB that I've found.
Lastly, you might also checkout Static+ a project by Jason Smith of IrisCouch.com:
https://github.com/iriscouch/static-plus
It does templating (using Handlebars.js--which is very similar to Mustache.js), but does it on your dev machine and publishes only the static content to CouchDB. You get the templated, DRY-ness, but with the performance of serving something pre-compiled.
Hope something in there is useful. :)