I'm using TBNL in a small web-app. A common need when developing webapps is to display a form with fields pre-populated from the database (i.e. email address, street address, etc.).<br><br>I'm wondering if it's possible to do this with cl-who in some generic way? I thought perhaps I could customize cl-who using the convert-tag-to-string-list method. The function below overrides default handling of (:input) tags to look for a :tuple attribute with a value set to a hash containing the values from the database needed to pre-fill the form the input element is part of. This approach doesn't work, however, because convert-tag-to-string serializes the string at compile time, and the data needs to be retrieved from the database at run time. Any ideas?
<br><br>(defmethod convert-tag-to-string-list ((tag (eql :input)) attr-list body body-fn)<br> ;;(declare (ignore attr-list))<br> (let ((name (cdr (assoc :name attr-list)))<br> (type (cdr (assoc :type attr-list)))
<br> (tuple (eval (cdr (assoc :tuple attr-list)))))<br> (nconc (cons (format nil "<input name='~a' type='~a' value='~a'>"<br> name type (if tuple<br> (gethash name tuple)
<br> ""))<br> (funcall body-fn body)) (list "</input>"))))<br><br><br>Thanks,<br><br>-Adam Thorsen<br>