In this tutorial I want to explain how to implement a simple launching soon page using PHP and jQuery. What’s a launching soon page? In general it’s a page that informs the visitors of a website under construction about when the website is going to be online and allows them to leave their emails in order to be updated when the website is on-line. A typical launching soon page contains a countdown and a form that collects emails from interested visitors. In this tutorial I implemented a launching soon page like this:

Launching Soon!

Launching Soon!

This page is very simple to modify and customize using just some lines of CSS code. You can also add the logo of your company and all elements you want with some lines of HTML code. Download the source code of this tutorial you can customize and reuse in your web project for free!

A little introduction
How I said this package is ready to use and contains these files:

- index.php: the launching soon page final interface (countdow + form)
- config.php: enables database connection
- insert.php: PHP code to add emails into a database table
- js/jquery-1.3.2.min.js: jQuery framework
- js/countdown.js: the countdown script

1. index.php
index.php is the final interface of your launching soon page. How I said it contains a countdown and a form to allow users to leave their emails.

The countdown script
In order to implement the countdown I used this dynamic countdown script that lets you count down to relative events of a future date/time. This future date, while the same for everyone, occurs differently depending on the time zone they’re in. The result is here and it’s fully customizable changing some lines of CSS code:

The only thing you have to do is to add this line of code in the <head> tag of the page:

<script type=“text/javascript” src=“js/countdown.js”></script>

Then, in the tag <body> add the following lines of code to display the countdown:

<div id=“count_down_container”></div>
<script type=“text/javascript”>
var currentyear = new Date().getFullYear()
var target_date = new cdtime(“count_down_container”, “July 6, “+currentyear+” 0:0:00″)
target_date.displaycountdown(“days”, displayCountDown)
</script>
To set a target date you have to change this line modifying July 6 and the hour 0:0:00 with your target date (for example 25 december):
new cdtime(“count_down_container”, “July 6, “+currentyear+” 0:0:00)
…if your target date is 25 December the previous line becomes:
new cdtime(“count_down_container”, “December 25, “+currentyear+” 0:0:00)
If you want to change the style of the countdown you have to modify the following CSS classes:

.count_down{}
.count_down sup{}

In particular .count_down{} changes the format of the numbers and .count_down sup{} changes the style of the text “days”, “hours”, “minutes”.

jQuery and the input form
Ok, the countdown is ready! Next step: add this line of code to include jQuery in the <head> tag of the page:

<script type=“text/javascript” src=“js/jquery-1.3.2.min.js”> </script>

Now, in the tag <body> add a simple form with an input field:

<form id=“submit_leave_email”>
<input id=“input_leave_email” type=“text” class=“input_bg” value=“Add your e-mail address/>
<button type=“submit” class=“input_button”>Update me</button>
</form>

…and add this layer to display a custom message when an user submit the form:

<div id=“update_success”>E-mail added!>/div>

…the result after the submission is here:

The form with the input field disappears with a nice fade-out effect and a success message appears in its place. Now, in the <head> tag, after the line of code that includes jQuery, add this script to enable ajax functionalities to insert emails added from users into a database table without reload the page:

<script type=“text/javascript”>
$(document).ready(function(){

$(“form#submit_leave_email”).submit(function() {
var input_leave_email = $(‘#input_leave_email’).attr(‘value’);
$.ajax({
type: “POST”,
url: “insert.php”,
data:“input_leave_email=”+ input_leave_email,
success: function(){
$(“#submit_leave_email”).fadeOut();
$(“#update_success”).fadeIn();
}
});
return false;
});
});

</script>

2. insert.php
insert.php contains some lines of PHP code to insert an email address into a database table. In this example I created a table EMAIL with just one attribute “email”. PHP code is very simple:

<?php
if(isset($_POST['input_leave_email'])){
/* Connection to Database */
include(‘config.php’);
/* Remove HTML tag to prevent query injection */
$email = strip_tags($_POST['input_leave_email']);

$sql = ‘INSERT INTO WALL (email) VALUES( “‘.$email.‘”)’;
mysql_query($sql);
echo $email;
} else { echo ‘0′; }
?>

Now, remember to modify your database connection parameters in config.php and upload all files on your testing server. Than load index.php and see the result!

That’s all! Download the source code of this tutorial you can customize and reuse in your web project for free! Leave a comment for your suggestions, thanks!


In this post I want to suggest you ten interesting lightweight jQuery plugins for web developers. This list includes a lightbox, an HTML markup editor, some plugins to work with images, a tooltips creator and a PHP interface for jQuery.

1. ColorBox
ColorBox is a light-weight, customizable lightbox plugin for jQuery 1.3 (only 9KB). It supports photos, photo groups, slideshow, ajax, inline, and iframed content; appearance is completely controlled through CSS so users can restyle the box; behavior settings can be over-written without altering the ColorBox javascript file. ColorBox is completely unobtrusive, requires no changes to existing HTML, preloads background images to avoid flash of unstyled content on first use. It can preload upcoming images in a photo group.

2. markItUp!
markItUp! is is a JavaScript plugin built on the jQuery library (just 6.5 KB). It allows you to turn any textarea into a markup editor. Html, Textile, Wiki Syntax, Markdown, BBcode or even your own Markup system can be easily implemented.

3. jFlow
jFlow is a widget to make your content slides. One popular alternative that exists out there is coda-slider. jFlow is super lightweight because it is only 2KB minified.

4. JPolite
JPolitejQuery POrtal Lite – is a lightweight front-end web portal framework based on jQuery (5 KB). The focus is easy content integration at the front-end, through an intuitive naming system and conventions plus simple and easy configuration. Developers can make use of various server side technologies and frameworks to generate content for the portal. Features: Flexible layout configurations, Module drag-drop (thanks to jQuery UI Simple UI controls (Tabs, accordion, …), Sample RSS Reader. Take a look at the demo here.

5. vTip

vTip is designed to quickly provide very lightweight (706b js, 272b CSS, 270b image) tooltips to users of jQuery. The zip includes everything you need (including an example page), as well as jQuery for the examples to work. Using the jQuery framwork any element with a class of vtip will have it’s title attribute turned into a sleek, customizable tooltip without the klunk and loading time of a large tooltip script.

6. jQuery Cycle Plugin
The jQuery Cycle Plugin is a lightweight slideshow plugin. It supports pause-on-hover, auto-stop, auto-fit, before/after callbacks, click triggers and many transition effects. The plugin provides a method called cycle which is invoked on a container element. Each child element of the container becomes a “slide”. Options control how and when the slides are transitioned.

7. Wilq32.RotateImage
Wilq32.RotateImage is a lightweight and very simple to use plugin to rotate images.

8. jqModal
jqModal is a plugin for jQuery to help you display notices, dialogs, and modal windows in a web browser. It is flexible and tiny, akin to a “Swiss Army Knife”, and makes a great base as a general purpose windowing framework.

9. jQPie
The idea of jQPie is to provide a lightweight PHP interface to jQuery. The lightweight interface allows multiple ways to interact. jQPie is lightweight, supports XML, HTML and JSON, handlers
API is simple, while the handlers engine is PHP based the javascript library is usable by any language and includes a powerful autocomplete plugin, plans to provide other plugins for use and as examples.

10. jContext
jContext is an ultra-lightweight right click context menu for jQuery. How lightweight is jContext? It’s approximately 0.6kB when minified.

Do you have any suggestion? Please leave a comment. Thanks!