WT Module-3
WT Module-3
APPLICATIONS
MODULE 3 - SYLLABUS
• JavaScript: Client-Side Scripting, What is JavaScript
and What can it do?, JavaScript Design Principles,
Where does JavaScript Go?, Syntax, JavaScript
Objects, The Document Object Model (DOM),
JavaScript Events, Forms, Introduction to Server-Side
Development with PHP, What is Server-Side
Development, A Web Server’s Responsibilities, Quick
Tour of PHP, Program Control, Functions
JavaScript: Client-Side Scripting
Chapter 6
Section 1 of 8
WHAT IS JAVASCRIPT
What is JavaScript
Java applets are written in and are separate objects included within
an HTML document via the <applet> tag
JavaScript History
• JavaScript was introduced by Netscape in their Navigator
browser back in 1996.
• It was originally called LiveScript
• JavaScript is in fact an implementation of a standardized
scripting language called ECMAScript
• JavaScript was only slightly useful, and quite often, very
annoying to many users
HTTP request-response loop
Without JavaScript
HTTP request-response loop
Detail
JavaScript in Modern Times
AJAX
• Presentation layer.
Classes focused on the user interface.
• Business layer.
Classes that model real-world entities, such as
customers, products, and sales.
• Data layer.
Classes that handle the interaction with the data
sources.
Layers
Just a conceptual idea
Users Without Javascript
They do exist
➢In this case, the developer creates the site using CSS, JavaScript,
and HTML features that are supported by all browsers of a
certain age or newer.
➢To that baseline site, the developers can now “progressively”
(i.e., for each browser) “enhance” (i.e., add functionality) to
their site based on the capabilities of the users’ browsers.
Progressive Enhancement
Graceful Degradation
❖With this strategy you develop your site for the abilities of
current browsers.
❖For those users who are not using current browsers, you might
provide an alternate site or pages for those using older browsers
that lack the JavaScript (or CSS or HTML5) used on the main site.
❖The idea here is that the site is “degraded” (i.e., loses capability)
“gracefully” (i.e., without pop-up JavaScript error codes or
without condescending messages telling users to upgrade their
browsers)
Graceful Degradation
Section 3 of 8
• Inline
• Embedded
• External
Inline JavaScript
Mash it in
SYNTAX
JavaScript Syntax
We will briefly cover the fundamental syntax for the most
common programming constructs including
• variables,
• assignment,
• conditionals,
• loops, and
• arrays
before moving on to advanced topics such as events and
classes.
JavaScript’s Reputation
Precedes it?
JavaScript’s reputation for being quirky not only stems from its strange
way of implementing object-oriented principles but also from some odd
syntactic gotchas:
• Everything is type sensitive, including function, class, and variable
names.
• The scope of variables in blocks is not supported. This means
variables declared inside a loop may be accessible outside of the
loop, counter to what one would expect.
• There is a === operator, which tests not only for equality but type
equivalence.
• Null and undefined are two distinctly different states for a variable.
• Semicolons are not required, but are permitted (and encouraged).
• There is no integer type, only number, which means floating-point
rounding errors are prevalent even with values intended to be
integers.
Variables
var
(x==="9") is false
=== Exactly equals, including type
(x===9) is true
JAVASCRIPT OBJECTS
JavaScript Objects
Objects not Classes
✓To access an element in the array you use the familiar square
bracket notation from Java and C-style languages, with the
index you wish to access inside the brackets.
alert ( greetings[0] );
✓One of the most common actions on an array is to traverse
through the items sequentially. Using the Array object’s length
property to determine the maximum valid index. We have:
for (var i = 0; i < greetings.length; i++){
alert(greetings[i]);
}
Arrays
Index and Value
Arrays
Modifying an array
✓To add an item to an existing array, you can use the push
method.
greetings.push("Good Evening");
✓The pop method can be used to remove an item from the back of
an array.
✓Additional methods: concat(), slice(), join(), reverse(), shift(), and
sort()
Math
➢The Math class allows one to access common mathematic
functions and common values quickly in one place.
➢This static class contains methods such as max(), min(), pow(),
sqrt(), and exp(), and trigonometric functions such as sin(), cos(),
and arctan().
➢Many mathematical constants are defined such as PI, E, SQRT2,
and some others
Math.PI; // 3.141592657
Math.sqrt(4); // square root of 4 is 2.
Math.random(); // random number between 0 and 1
String
❖The String class has already been used without us even knowing
it.
❖Constructor usage
var greet = new String("Good"); // long form constructor
var greet = "Good"; // shortcut constructor
❖Length of a string
alert (greet.length); // will display "4"
String
Concatenation and so much more
❑The Date class is yet another helpful included object you should
be aware of.
❑It allows you to quickly calculate the current date or create date
objects for particular dates.
❑To display today’s date as a string, we would simply create a
new object and use the toString() method.
var d = new Date();
// This outputs Today is Mon Nov 12 2012 15:40:19 GMT-0700
alert ("Today is "+ d.toString());
Window
❖The window object in JavaScript corresponds to the browser itself.
Through it, you can access the current page’s URL, the browser’s
history, and what’s being displayed in the status bar, as well as
opening new browser windows.
❖In fact, the alert() function mentioned earlier is actually a method
of the window object.
Section 6 of 8
Property Description
Method Description
getElementById(id)
Returns the element node whose id
attribute matches the passed id
parameter.
getElementsByTagNa Returns a nodeList of elements
me(name) whose tag name matches the
passed name parameter.
Accessing nodes
getElementById(), getElementsByTagName()
Element node Object
The type of object returned by the method
document.getElementById() described in the previous section is an
element node object.
This represents an HTML element in the hierarchy, contained
between the opening <> and closing </> tags for this element.
• can itself contain more elements
Element node Object
Essential Element Node Properties
Property Description
JAVASCRIPT EVENTS
JavaScript Events
•A JavaScript event is an action that can be detected by
JavaScript.
•We say then that an event is triggered and then it can be
caught by JavaScript functions, which then do something in
response.
JavaScript Events
A brave new world
function someHandler(e) {
// e is the event that triggered this handler.
}
Event Object
Several Options
Event Description
onclick The mouse was clicked on an element
ondblclick The mouse was double clicked on an element
onmousedown The mouse was pressed down over an element
onmouseup The mouse was released over an element
onmouseover The mouse was moved (not clicked) over an
element
onmouseout The mouse was moved off of an element
onmousemove The mouse was moved while over an element
Keyboard events
Event Description
onkeydown The user is pressing a key (this
happens first)
onkeypress The user presses a key (this
happens after onkeydown)
onkeyup The user releases a key that was
down (this happens last)
Keyboard events
Example
Event Description
onabort An object was stopped from loading
FORMS
Validating Forms
You mean pre-validating right?
❖If you want to ensure a checkbox is ticked, use code like that
below.
var inputField=document.getElementByID("license");
if (inputField.type=="checkbox")
{
if (inputField.checked)
//Now we know the box is checked
}
Validating Forms
Number Validation
Submitting Forms
❖Submitting a form using JavaScript requires having a node
variable for the form element. Once the variable, say,
formExample is acquired, one can simply call the submit()
method:
var formExample = document.getElementById("loginForm");
formExample.submit();
✓This is often done in conjunction with calling preventDefault()
on the onsubmit event.
Introduction to Server-Side
Development with PHP
Chapter 8
Section 1 of 5
WHAT IS SERVER-SIDE
DEVELOPMENT
What is Server-Side Development
• ASP (Active Server Pages). Like PHP, ASP code (using the VBScript
programming language) can be embedded within the HTML. ASP
programming code is interpreted at run time, hence it can be
slow in comparison to other technologies.
• ASP.NET. ASP.NET is part of Microsoft’s .NET Framework and can
use any .NET programming language (though C# is the most
commonly used). ASP.NET uses an explicitly object-oriented
approach. It also uses special markup called web server controls
that encapsulate common web functionality such as
database-driven lists, form validation, and user registration
wizards. ASP.NET pages are compiled into an intermediary file
format called MSIL that is analogous to Java’s byte-code. ASP.NET
then uses a Just-In-Time compiler to compile the MSIL into
machine executable code so its performance can be excellent.
However, ASP.NET is essentially limited to Windows servers.
Comparing Server-Side Technologies
<?php
# single-line comment
/*
This is a multiline comment.
They are a good way to document functions or complicated
blocks of code
*/
$artist = readDatabase(); // end-of-line comment
?>
Variables
❑Variables in PHP are dynamically typed.
❑Variables are also loosely typed in that a variable can be
assigned different data types over time
❑To declare a variable you must preface the variable name
with the dollar ($) symbol.
$count = 42;
Data Types
String Letters
$firstName = "Pablo";
$lastName = "Picasso";
/*
Example one:
These two lines are equivalent. Notice that you can reference PHP
variables within a string literal defined with double quotes. The
resulting output for both lines is: <em>Pablo Picasso</em>
*/
echo "<em>" . $firstName . " ". $lastName. "</em>";
echo "<em> $firstName $lastName </em>";
String Concatenation
Example
/*
Example two:
These two lines are also equivalent. Notice that you can use
either the single quote symbol or double quote symbol for string
literals.
*/
echo "<h1>";
echo '<h1>';
String Concatenation
Example
/*
Example three:
These two lines are also equivalent. In the second example, the
escape character (the backslash) is used to embed a double quote
within a string literal defined within double quotes.
*/
echo '<img src="23.jpg" >';
echo "<img src=\"23.jpg\" >";
String escape Sequences
Sequence Description
\n Line feed
\t Horizontal tab
\\ Backslash
\$ Dollar sign
▪Precision allows for control over how many decimal places are
shown. Important for displaying calculated numbers to the user in
a “pretty” way.
▪Precision is achieved in the string with a period (.) followed by a
number specifying how many digits should be displayed for
floating-point numbers.
Section 4 of 5
PROGRAM CONTROL
If…else
The syntax for conditionals in PHP is almost identical to that
of JavaScript
If…else
Alternate syntax
Switch…case
Nearly identical
While and Do..while
Identical to other languages
For
Identical to other languages
Alternate syntax for Control
Structures
PHP has an alternative syntax for most of its control structures.
In this alternate syntax
• the colon (:) replaces the opening curly bracket,
• while the closing brace is replaced with endif;, endwhile;,
endfor;, endforeach;, or endswitch;
Include Files
Organize your code
FUNCTIONS
Functions
You mean we don’t write everything in main?
Just as with any language, writing code in the main function (which
in PHP is equivalent to coding in the markup between <?php and ?>
tags) is not a good habit to get into.
A function in PHP contains a small bit of code that accomplishes
one thing. In PHP there are two types of function: user-defined
functions and built-in functions.
1. A user-defined function is one that you the programmer
define.
2. A built-in function is one of the functions that come with the
PHP environment
Functions
syntax
3 Quick Tour of
PHP 4 Program Control
5 Functions