The HTML
Here is the HTML for the project. It includes a form with a text field, and a div to contain the queue. We also included the jQuery library from Google.
Code: Select all
<!DOCTYPE html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<title>jQuery Add to Queue</title>
</head>
<body>
<h1>jQuery Add to Queue</h1>
<form id="form" method="post" action="process.php">
<label for="input">Add to queue:</label>
<input type="text" name="input" id="input">
<input type="submit" name="Submit" id="submit" value="Add!">
</form>
<h2>Queue: </h2>
<div id="queue"></div>
</body>
</html>
Here is some basic CSS to style the queue. #queue styles the container, and #queue > div styles direct descendant divs. An important thing to note is the display: none; at the end, which is needed for our animation to show.
Code: Select all
#queue {
background-color: #CCCCCC;
padding: 6px;
border: 1px solid #000000;
}
#queue > div {
background-color: #66CC66;
border: 1px solid #FFFFFF;
margin: 4px;
padding: 4px;
display: none;
}
Here is the code to handle processing the form, creating a new div element, and prepending it to the queue with an animation. To create a new element, we just need to pass the raw HTML as if it were a selector (read about this behaviour here). Read the comments to find out what each part does.
Code: Select all
$(document).ready(function() {
// wait for form submission
$("#form").submit(function() {
// get the input element and text
var input = $("#input");
var text = input.val();
// check if text was entered
if(text.length > 0) {
// create a new div element, add it to queue and animate
var element = $('<div>' + text + '</div>');
element.prependTo("#queue").slideDown();
// clear input field
input.val('');
}
// prevent default form action
return false;
});
});
Let's say you want to send the data to a PHP script to process the data. Take this script, which returns a JSON object indicating success or failure with a cleaned version of the original text. You can easily add it to a database or something as well.
Code: Select all
<?php
if(isset($_POST['data'])) {
// add to database or something here
$text = htmlspecialchars($_POST['data']);
echo "{'status':'success','text':'" . $text . "'}";
}
else {
echo "{'status':'failed'}";
}
?>
Code: Select all
$(document).ready(function() {
// wait for form submission
$("#form").submit(function() {
// get the input element and text
var input = $("#input");
var text = input.val();
// check if text was entered
if(text.length > 0) {
//post data to process.php and get json
$.post('process.php', { data: text }, function(data) {
// if process.php returns success
if(data.status == 'success') {
// create a new div element, add it to queue and animate
var element = $('<div>' + data.text + '</div>');
element.prependTo("#queue").slideDown();
// clear input field
input.val('');
}
}, 'json');
}
// prevent default form action
return false;
});
});
So there's a simple effect that can have many different uses.