Welcome Guest, Not a member yet? Register   Sign In
Too much code just to output a form
#11

[eluser]xwero[/eluser]
I wonder why people use divs if the form looks like a a paragraphed text? Just use the p tag, the fields will not be shown horizontally.

The problem i have with the ggoforth's example is that fieldset would be better than a div as it is a group of fields.

html5 has all these descriptive tags; nav, article, details. I think it's better to use the most descriptive tag for the job, this creates markup that can read by machines and humans with less guessing how the page is build.

To get back on track the form helpers are meant to use when a cms give its users a bit of wiggle room to change the form to their liking. Otherwise form helpers are indeed a unnecessary layer.
#12

[eluser]slowgary[/eluser]
I never looked at it that way xwero. The HTML helpers do indeed make more sense from a dynamically generated point of view.
#13

[eluser]garymardell[/eluser]
This http://www.sitepoint.com/article/fancy-form-design-css/ article i found useful for making forms, sure its not the only way, there is divs and paragraphs but seems a good a way as any.
#14

[eluser]jayrulez[/eluser]
here's an example of how i build a for using div. its pretty wordy but also formatted pretty good

Code:
<div id="quicksignup-col" class="clearfix">
                    <div id="quicksignup-col-content">
                      <div id="quicksignup">
                        <div id="quicksignup-header">
                          <div id="quicksignup-title">{%signup_title}</div>
                          <div id="quicksignup-subtitle">{%signup_subtitle}</div>
                        </div>
                        &lt;form id="quicksignup-form" action="{:url('','','signup','',array('ajax'=&gt;1))}" method="post">
                          <div id="quicksignup-form-content">
                            <div class="quicksignup-item clearfix">
                              <div class="quicksignup-label">
                                <label for="quicksignup-fullname">{%signup_fullname}</label>
                              </div>
                              <div class="quicksignup-field">
                                &lt;input type="text" name="truename" id="quicksignup-fullname" class="inputtxt" value=""/&gt;
                              </div>
                            </div>
                            <div class="quicksignup-item clearfix">
                              <div class="quicksignup-label">
                                <label for="quicksignup-email">{%signup_email}</label>
                              </div>
                              <div class="quicksignup-field">
                                &lt;input type="text" name="email" id="quicksignup-email" class="inputtxt" value=""/&gt;
                              </div>
                            </div>
                            <div class="quicksignup-item clearfix">
                              <div class="quicksignup-label">
                                <label for="quicksignup-password">{%signup_password}</label>
                              </div>
                              <div class="quicksignup-field">
                                &lt;input type="password" name="password" id="quicksignup-password" class="inputpwd" value=""/&gt;
                              </div>
                            </div>
                            <div class="quicksignup-item clearfix">
                              <div class="quicksignup-label">
                                <label for="quicksignup-gender">{%signup_gender}</label>
                              </div>
                              <div class="quicksignup-field">
                                <select name="gender" id="quicksignup-gender">
                                  <option value="0">{%signup_gender_select}</option>
                                  <option value="1">{%signup_gender_male}</option>
                                  <option value="2">{%signup_gender_female}</option>
                                </select>
                              </div>
                            </div>
                            <div class="quicksignup-item clearfix">
                              <div class="quicksignup-label">
                                <label for="quicksignup-birthday-month">{%signup_birthday}</label>
                              </div>
                              <div class="quicksignup-field">
                                <select name="birthday_month" id="quicksignup-birthday-month">
                                  <option value="00">{%signup_birthday_month}</option>
                                  &lt;!--<volist name="monthList" id="month">--&gt;
                                  <option value="{$month.id}">{$month.name}</option>
                                  &lt;!--</volist>--&gt;
                                </select>
                                <select name="birthday_day" id="quicksignup-birthday-day">
                                  <option value="00">{%signup_birthday_day}</option>
                                  &lt;!--<volist name="dayList" id="day">--&gt;
                                  <option value="{$day.id}">{$day.id}</option>
                                  &lt;!--</volist>--&gt;
                                </select>
                                <select name="birthday_year" id="quicksignup-birthday-year">
                                  <option value="00">{%signup_birthday_year}</option>
                                  &lt;!--<volist name="yearList" id="year">--&gt;
                                  <option value="{$year.id}">{$year.id}</option>
                                  &lt;!--</volist>--&gt;
                                </select>
                              </div>
                            </div>
                            <div class="quicksignup-item last clearfix">
                              <div class="quicksignup-label">
                                <label>&nbsp;</label>
                              </div>
                              <div class="quicksignup-field">
                                &lt;input type="submit" class="inputsubmit-b" id="quicksignup-submit"&gt;
                              </div>
                            </div>
                          </div>
                          <div id="quicksignup-form-captcha">
                            captcha div
                          </div>
                        &lt;/form&gt;
                        <div id="quicksignup-process" class="process">
                        </div>
                        <div id="quicksignup-error" class="error">
                        </div>
                      </div>
                    </div>
                  </div>
#15

[eluser]jayrulez[/eluser]
and it needs this css to show up properly
Code:
a,body,br,dd,div,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,html,hr,img,input,label,legend,li,p,ul,table,tr,th,td,p,span{margin:0px;padding:0px;}
body{font-family:"lucida grande",tahoma,verdana,arial,sans-serif;color:#333333;background-color:#ffffff;text-align:center;font-size:11px;}
a{cursor:pointer;-moz-outline-style:none;text-decoration:none;color:#3b5998;}
a:hover{text-decoration:underline;}
input,select{font-size:11px;color:#333333;}
select{font-family:"lucida grande",tahoma,verdana,arial,sans-serif;border:solid 1px #d8dfea;padding:1px;}
label{cursor:pointer;}
.clearfix:after{content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden;}
.clearfix{display:block;}
.clear {clear:both;}
.en-us{}
.form-token{display:none;}

._tinymce{width:100%;height:320px;}

.error{padding:10px;border: 2px solid #ddd;background: #FBE3E4; color: #8a1f11; border-color: #FBC2C4;display:none;text-align:center;}
.notice,.process{padding:10px;border: 2px solid #ddd;background: #FFF6BF; color: #514721; border-color: #FFD324;display:none;text-align:center;}
.success{padding:10px;border: 2px solid #ddd;background: #E6EFC2; color: #264409; border-color: #C6D880;display:none;text-align:center;}
.error a{color: #8a1f11;}
.notice a, .process a{color: #514721;}
.success a{color: #264409;}

/* IE */
body.ie6, body.ie7 {text-align:center;}
.ie6 .clearfix,.ie7 .clearfix {display:inline-block;}
.ie6 .clearfix{height:1%;}

.inputsubmit-a{cursor:pointer;padding:2px 10px 3px 10px;background:#3b5998;border:solid 1px #224488;color:#ffffff;font-weight:bold;display:inline-block;}
.inputsubmit-b{cursor:pointer;padding:2px 10px 3px 10px;background:#66aa44;border:solid 1px #558844;color:#ffffff;font-weight:bold;display:inline-block;}
#welcome #welcome-body #welcome-body-content #quicksignup-col{float:right;width:380px;background:#f0f5f8;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content{padding:20px;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup{}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-header{}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-header #quicksignup-title{font-size:15px;font-weight:bold;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-header #quicksignup-subtitle{margin:5px 0px;font-size:13px;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form{}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content{}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item{margin-bottom:5px;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .last{margin-bottom:0px;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item .quicksignup-label{margin-top:3px;float:left;width:110px;text-align:right;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item .quicksignup-field{float:right;width:225px;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item .quicksignup-field .inputtxt,
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item .quicksignup-field .inputpwd{width:217px;padding:3px;height:12px;border:solid 1px #d8dfea;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item .quicksignup-field #quicksignup-submit{margin:5px 0px 0px 0px;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-captcha{display:none;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-process{margin-top:20px;}
#welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-error{margin-top:20px;}

/*IE6*/
.ie6 #welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item .quicksignup-field .inputtxt,
.ie6 #welcome #welcome-body #welcome-body-content #quicksignup-col #quicksignup-col-content #quicksignup #quicksignup-form #quicksignup-form-content .quicksignup-item .quicksignup-field .inputpwd{width:225px;padding:3px;height:20px;border:solid 1px #d8dfea;}

of course you've gotta start wrapping from the #welcome.

screenshot: http://favefaces.com/ff_dev.png
#16

[eluser]dopple[/eluser]
Sorry for being absent for a while and not thanking you guys for the replies. I'll stick to manually typing out the html.
Cheers lads and/or lasses




Theme © iAndrew 2016 - Forum software by © MyBB