Download Firefox: WindowsMac OS X
logo       
Google Custom Search
    AddThis Social Bookmark Button

Re: post leaves out form variables with empty values: msg#00018

Subject: Re: post leaves out form variables with empty values
>>>>> On Thu, 24 Jun 2004 23:47:24 -0400, Mark Klein <m_klein@xxxxxxx> said:

  Mark> I traced a problem in my server to the following fact: As the example 
  Mark> below will show, if you create a fillout-form which gets some 
  Mark> strings, and the user leaves some fields blank when filling it out, 
  Mark> the query-alist passed to the response function *leaves out* the 
  Mark> variables for which no values were entered, as opposed for example to 
  Mark> including the variables with null strings as their value.

  Mark> (defmethod show-form ((url url:http-form) stream)
  Mark>    (http:with-successful-response (stream :html)
  Mark>      (html:with-fillout-form (:post url :stream stream)
  Mark>        (html:accept-input 'html:string "v1" :stream stream)
  Mark>        (html:accept-input 'html:string "v2" :stream stream)
  Mark>        (html:accept-input 'html:submit-button "Submit" :stream 
stream))))

  Mark> (defmethod get-form ((url url:http-form) stream query-alist)
  Mark>    (http:with-successful-response (stream :html)
  Mark>      (write query-alist :stream stream)))

  Mark> (http:export-url #u"/test.html"
  Mark>                   :html-computed-form
  Mark>                   :form-function #'show-form
  Mark>                   :response-function #'get-form)

  Mark> I understand that makes the POST a little smaller, but for my 
  Mark> purposes I want all the form variables to appear in the query-alist. 
  Mark> How can this be done?

It looks CL-HTTP's form decoding code in HTTP::PARSE-FORM-RAW-VALUES is
written that way.  You can work around it like this, but I'm not sure if that
is by design:

(html:with-fillout-form (:post url :stream stream
                                   :ENCODING-TYPE '(:MULTIPART :FORM-DATA))
  ...)

__Martin



<Prev in Thread] Current Thread [Next in Thread>