こないだzend framework+smartyで郵便番号のajax検索を作りましたが、大口事業者の事業者名を氏名欄に入力したい、ということなので、結局ajaxのレスポンスをプレーンテキスト→JSONにすることに。

固定js

function searchZipAddress(inputTarget, destTargetAddress, destTargetName, action) {
    var inputID = '#' + inputTarget;
    var destAddressID = '#' + destTargetAddress;
    var destNameID = '#' + destTargetName;
    var inputVal = $(inputID).val();
    var reqURL = action + '/zip/' + inputVal +  '/';

    // JSONで返ってくるので適宜構築
    $.getJSON(reqURL, function(result) {
        if (result.message != '') {
            $(destAddressID).val(result.message);
        } else {
            $(destAddressID).val(result.pref + result.city + result.area);
            if (result.jigyousho_name != '') {
                $(destNameID).val(result.jigyousho_name);
            }
        }
    });
}


zip.tpl

{$result|json}


modifier.json.php

<?php
function smarty_modifier_json($source)
{
    return Zend_Json::encode($source);
}