 So, dear students, in this module, we'll talk about the controls as part of a form. In the previous module, we talked about the method of the get and the post and in this module we'll get into more details. So, what is a control? A control is a container which consists of many items or objects or elements which we'll be discussing and using these controls, we manipulate what we need to display on the screen, what we need to send to the server, manipulation in terms of how do we manage and arrange all of this, right? So, let's go into the outline of this module. So, the outline is about the forms, form is a container of controls, of course I will talk about it, which consists of the method, which consists of the action, which consists of the tags, the different types of controls, the attributes of controls, all of this we'll be discussing in this module. And then is the form design issues. There are two main form design issues, is the size of the form and how do we manage the size of this forms. I'll spend more time on the form issues because the user interacts with the web server through these forms and this has become more and more important when we have small screen handheld devices with minimal or minimal real estate in terms of screen size. So, what should be displayed on the form? So, these are the issues which we'll be talking about with the vis-a-vis-a-vis to the form issues. Of course, we'll also talk about the hidden controls. This is very interesting, hidden controls. Hidden controls is that the data is being passed from the form to the server or from the form to the form and that data is not displayed shown to the user. Of course, it has its own benefits like the security also and making the thing simple appear in the URL window. So, let's go into the more details. So, what is a form? Form is a container of control and what the form consists of? It consists of the method and the action and the method, the get and the post we have already discussed very briefly. So, using the get method, the server is being directed to generate a page and post we are sending transfer. Transfer is taking place. And of course, the actions are executed the program and the path is also given where the program has to be executed. And of course, when I tell the server which program to execute, it could be retrieving a page, it could be retrieving something static, generating something dynamically or running a script and so on. And I have to specify the path also where it is located. And for the, for the, every form has a name also. What kind of character encoding is used in the form and the content of the form, what are the tags being used, which we discussed. So these are the different elements or the things associated with the form. Now, if you look at the bottom of your screen, now I have over here an application. I have over here a form also. And in this action part, if the location of the item to be executed to be retrieved is other than my hard disk, then I give the complete URL, which is given over here. I believe now you understand the importance and how they are being used. So what are the controls? The controls is a long list of controls you can see on the screen. And in the subsequent modules, I'll be looking at discussing with you, showing you these controls. And I will also discuss with you the code which goes behind these controls. So very, very briefly, we have these buttons over here in the control. These buttons could be general and these buttons could be special buttons. Special buttons are like submit, special buttons are like reset. With these special buttons, remember no data is passed. With the general buttons, data is of course passed. Or I can pass data or I can have a command associated with that general button which could be forward or backward or whatever and sending the data also. Then I have the check boxes. Check boxes can have a yes choice, can have a no choice. I can have a group of radio buttons also. And of course remember in the radio buttons only one choice is selected at a time. And then I can have menus also which allow me to select one item or multiple items. I can have control text boxes with single line or multiple line. And of course I can have specialized text fields used for passwords. When I use them for passwords, then these are specialized and they don't display what is typed, which is obvious. And of course I have this image fields also, image control, hidden control. And I'll talk about the application of the hidden control also. And then of course object and select controls also. So you see there, there are a whole list of controls which will be covered in the subsequent and this module also. So what are the attributes of these controls? For example, I have this type. So the type is specified whether it's a radio button, it's a text, it's a text area. So this is how I specify then of course the name also. Now this is very interesting, the value of the control. Now you can set the value of the control, the default value or you cannot, for example, no data in initial, no data on special, specialized controls. And of course it's a value named pair which is being sent to the server. Or you may leave the value altogether. So it is the type of the style you're using. And then there are other controls also. For example, what is the width of the control? What is the maximum character capacity? Or the characters which can be typed in that control and the checkbox is checked or not and so on. Now lastly is the control flow. Whether that control flow is moving from down the page or this control from side to side, by default it moves from top to bottom. But it may be side to side for this you used to have tables, right? So it is up to you how you manage the movement of the control within your page. Now I come to the more challenging part, which is the hidden controls. The hidden controls, the type is hidden. The contents are not shown. So what is the purpose of hidden control? It could be passing data from one page to the other page and the hidden control has a name and the value like other controls. The only difference is that you don't see the contents of the hidden control. And what is the purpose of hidden control? You can create fields. Hidden fields and you can assign values to those hidden fields. So they are the main difference which we are seeing over here is that the contents are not visible. What are the types? These are specified controls. They can hide button, cannot hide button. So it means that the hide control cannot be applied to buttons because the buttons are displayed, right? So it is a special type of control. Now remember one thing. The difference between the hidden control and the control which is not visible. So more details are not within the scope of this module. So now let's talk about the submitting a form. So when we submit a form, what happens? We can reset something, okay? Or we can ignore something. So now when the reset option is there on submitting a form, remember all the values which were initially entered by the user. Those values are set to the default value, which were hard coded in the form, in the value part. And we have the submit and reset buttons, the submit button, clicking on it doesn't have any data value associated with it. It just submits the form as per the URL which describes where the server is and which script is to be run, where it's going to go, right? And for the reset, it is resetting to the initial value. So these are the things which happen when we submit a form. And finally the form design issues. A form has to be as small as possible. Because if the number of elements in a form is like more than 10, right? People feel that they are overwhelmed, right? So one thing is the size of the form. It should be small as possible. And you should be able to see what is on the form with minimal scrolling. Better there is no scrolling, better there is no scrolling. But with minimum scrolling, with minimum scrolling. Other thing about the form size issue is the logical size of the form. With reference to the screen, with reference to what is displayed to the user, the area occupied by the form should be minimized. And it should be on a small area of the screen. And remember one thing that because a form when submitted to the server, engages the server for processing. Now if you are submitting a form and there is nothing for the server to do, it generates kind of an overhead on the server. To find something that it doesn't have to do, it reflects upon the performance. So if the data to be submitted is not part of a control element, don't use forms. Use the data, use the submission outside other than the forms. When you have large forms what you do, split the forms into multiple screens. For example, ask for the information about the user in case of registration. Ask for the feedback, ask for something else. So you have split the forms into multiple forms and use the get command to send the data to the next screen and how use the hidden fields. So the data is being sent to the next screen. Now remember in the previous module I told you that when you send with this get method, the data is displayed. It's not part of the message body. So you can send the data using the get command and a dynamically generated page confirms to the user what has been sent to the server. I believe you understand this, right? And this is step by step. You take the user from one screen to the second screen to the third screen. I am talking with reference to the registration. So we have this step one, it takes to step two, it takes to step three. And finally all of the data that was collected by the user is finally submitted and that data was using from or moving from one screen to the other screen using the hidden fields. So that's all I have for this module. Thank you for your time.