OK! Originally I had a problem with this script but I fixed it and it all works perfectly. If anyone has any use for this, here you go:
this feature is using: jscripts/jquery-1.3.2.min.js jscripts/jquery-ui-1.7.1.custom.min.js jscripts/jquery.validate.js jscripts/jquery.form.js jscripts/jquery.metadata.js jscripts/jquery.tablesorter.min.js jquery.tablesorter.pager.js admin.php javascript: function updateUserList(){ $("#admin_list_user_box > .user_box").hide(); $("#user_table_loading").fadeIn(); $.ajax({ type: "POST", url: "user_logic.php", data: "action=update", complete: function(data){ $("#user_table_loading").hide(); $("#admin_list_user_box > .user_box").html(data.responseText); $("#admin_list_user_box > .user_box").fadeIn(1000); } }); } updateUserList(); $('a.add_user').click(function(e) { e.preventDefault(); $('#add_user_dialog').dialog('open'); return false; }); $("#add_user_dialog").dialog({ show: 'scale', bgiframe: true, autoOpen: false, modal: true, draggable: false, width: 500, resizable: false, position: ['top', 50], buttons: { 'Ok': function() { var inputs = []; $(':input', this).each(function() { inputs.push(this.name + '=' + escape(this.value)); }) $.ajax({ type: "POST", url: "user_logic.php", data: "action=add&" + inputs.join('&'), beforeSend: function() { $("#admin_list_user_box > .user_box").hide(); $("#user_table_loading").fadeIn(); }, error: function() { alert("Failed to submit"); }, success: function() { updateUserList(); } }); $(this).dialog('close'); }, Cancel: function() { $(this).dialog('close'); } } }); $("#add_user").validate({ rules: { user_username: { required: true, minlength: 4, remote: "login_check.php" }, user_password: { required: true, minlength: 5, }, user_email: { required: true, email: true, remote: "email_check.php" } }, messages: { user_username: { required: "Enter a User Name", minlength: jQuery.format("Enter at least {0} characters"), remote: jQuery.format("{0} is already in use") }, user_password: { required: "Enter a password", minlength: jQuery.format("Enter at least {0} characters") }, user_email: { required: "Please Enter an Email Address", remote: jQuery.format("{0} is already in use") } }, errorLabelContainer: $("ul", "#add_user .user_result"), wrapper: 'li', submitHandler: function() { $("#add_user").ajaxSubmit({ clearForm: true }); $(this).dialog('close'); } }); admin.php html: <div id="manage_users"> <a class="add_user">Add User</a> <div id="admin_list_user_box" class="ui-widget ui-corner-all"> <div class="ui-widget-header">*User List</div> <div id="add_user_dialog" title="Add User?"> <form class="cmxform" id="add_user"> <fieldset> <div class="user_row"> <div class="user_label">User Login:</div> <div class="user_value"><input name="user_username" type="text"></div> </div> <div class="user_row"> <div class="user_label">User Password:</div> <div class="user_value"> <input name="user_password" type="text"> </div> </div> <div class="user_row"> <div class="user_label">User email address:</div> <div class="user_value"> <input name="user_email" type="text" minlength="5"> </div> </div> <div class="user_row"> <div class="user_label">User Type:</div> <div class="user_value"> <select name="user_type"> <option value="user">Registered User</option> <option value="editor">Content Editor</option> <option value="admin">Site Administrator</option> </select> </div> </div> <div class="user_row"> <div class="user_result"> <ul> </ul> </div> </div> </fieldset> <input class="edit_user_id" name="user_id" type="hidden" value="" /> </form> </div> <div id="user_table_loading" style="text-align:center;" class="ui-helper-clearfix"><img src="img/loading.gif" alt="Loading..." /></div> <div class="ui-helper-clearfix user_box"> <!-- AJAX Loaded Content --> </div> </div> </div> user_logic.php (the meat): <? include("your_database_connection_file"); if(isset($_POST['action'])) { ?> <script type="text/javascript"> $(document).ready(function() { $("#user_table").tablesorter({ headers: { 4: {sorter: false} }, widgets: ['zebra'] }) .tablesorterPager({ container: $("#user_table1pager"), positionFixed: false, size: 20 }) $('table.tablesorter tbody tr td').css('border-bottom','1px #000 solid'); function updateUserList(){ $("#admin_list_user_box > .user_box").hide(); $("#user_table_loading").fadeIn(); $.ajax({ type: "POST", url: "user_logic.php", data: "action=update", complete: function(data){ $("#user_table_loading").hide(); $("#admin_list_user_box > .user_box").html(data.responseText); $("#admin_list_user_box > .user_box").fadeIn(1000); } }); } $('a.delete').click(function(e) { e.preventDefault(); var user_id; var user_name; user_id = $(this).parent().siblings().eq(0).attr('id') user_name = $(this).parent().siblings().eq(1).attr('id') $('.delete_user_id').val(user_id) $("span.user_name_span").text("" + user_name); $('#delete_user_confirmation').dialog('open'); return false; }); $("#delete_user_confirmation").dialog({ show: 'scale', bgiframe: true, autoOpen: false, modal: true, draggable: false, width: 350, resizable: false, position: ['top', 50], buttons: { 'Ok': function() { $.ajax({ type: "POST", url: "user_logic.php", data: "action=delete&user_id=" + $ ('.delete_user_id').attr('value'), beforeSend: function() { $("#admin_list_user_box > .user_box").hide(); $("#user_table_loading").fadeIn(); }, success: function() { updateUserList(); } }); $(this).dialog('close'); }, Cancel: function() { $(this).dialog('close'); } } }); $('a.edit').click(function(e) { e.preventDefault(); var user_id; var user_name; var user_email; var user_type; var UserRow; UserRow = $(this).attr('id') user_id = $(this).parent().siblings().eq(0).attr('id') user_name = $(this).parent().siblings().eq(1).attr('id') user_email = $(this).parent().siblings().eq(2).attr('id') user_type = $(this).parent().siblings().eq(3).attr('id') $('form#edit_user .edit_user_id').val(user_id) $('span.user_name_span').text('' + user_name); $('form#edit_user .edit_user_name').val(user_name) $('form#edit_user .edit_user_email').val(user_email) $('form#edit_user .edit_user_user_type').val(user_type) $('#edit_user_dialog').dialog('open'); return false; }); $("#edit_user").validate({ rules: { edit_user_password: { minlength: 5, }, edit_user_email: { required: true, email: true, remote: "email_check.php" } }, messages: { edit_user_password: { minlength: jQuery.format("Enter at least {0} characters") }, edit_user_email: { required: "Please Enter an Email Address", remote: jQuery.format("{0} is already in use") } }, errorLabelContainer: $("ul", "#edit_user .user_result"), wrapper: 'li', submitHandler: function() { $("#edit_user").ajaxSubmit({ beforeSubmit: function(){ $("#edit_user").serialize(); }, success: function(){ updateUserList(); clearForm: true } }); $(this).dialog('close'); } }); $("#edit_user_dialog").dialog({ show: 'scale', bgiframe: true, autoOpen: false, modal: true, draggable: false, width: 500, resizable: false, position: ['top', 50], buttons: { 'Ok': function() { var inputs = []; $(':input', this).each(function() { inputs.push(this.name + '=' + escape(this.value)); }) $.ajax({ type: "POST", url: "user_logic.php", data: "action=edit&" + inputs.join('&'), beforeSend: function() { $("#admin_list_user_box > .user_box").hide(); $("#user_table_loading").fadeIn(); }, error: function() { alert("Failed to submit"); }, success: function() { updateUserList(); } }); $(this).dialog('close'); }, Cancel: function() { $(this).dialog('close'); } } }); }); </script> <div id="delete_user_confirmation" title="Delete User?"> <input class="delete_user_id" name="user_id" type="hidden" value="" /> <p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>The user "<span class="user_name_span"></span>" will be permanently deleted. Are you sure?</p> </div> <div id="edit_user_dialog" title="Edit User?"> <form class="cmxform" id="edit_user" action="user_logic.php" method="post"> <fieldset> <div class="user_row"> <div class="user_label">User Login:</div> <div class="user_value"><span class="user_name_span"></span></div> </div> <div class="user_row"> <div class="user_label">Update Password:</div> <div class="user_value"> <input class="edit_user_password" name="edit_user_password" type="text"> </div> </div> <div class="user_row"> <div class="user_label">Update email address:</div> <div class="user_value"> <input class="edit_user_email" name="edit_user_email" type="text" minlength="5"> </div> </div> <div class="user_row"> <div class="user_label">Update User Type:</div> <div class="user_value"> <select name="edit_user_user_type" class="edit_user_user_type"> <option value="user">Registered User</option> <option value="editor">Content Editor</option> <option value="admin">Site Administrator</option> </select> </div> </div> <div class="user_row"> <div class="user_result"> <ul> </ul> </div> </div> </fieldset> <input class="edit_user_id" name="user_id" type="hidden" value="" /> <input class="edit_user_name" name="user_name" type="hidden" value="" /> <input name="action" type="hidden" value="edit" /> </form> </div> <? switch($_POST['action']){ case "update": $fetch = mysql_query("SELECT id,username,password,email,user_type FROM users ORDER BY id"); ?> <table cellpadding="0" cellspacing="0" class="tablesorter" id="user_table"> <thead> <tr> <th width="20%">User ID</th> <th width="20%">User Name</th> <th width="33%">User Email</th> <th width="20%">User Type</th> <th width="7%">Action</th> </tr> </thead> <tbody> <? $row_count = 1; while ($user = mysql_fetch_array($fetch,MYSQL_NUM)) { $fetched_id = $user[0]; $fetched_username = $user[1]; $fetched_password = $user[2]; $fetched_email = $user[3]; $fetched_user_type = $user[4]; $result .= "<tr id='record-".$fetched_id."'> <td id='".$fetched_id."'>".$fetched_id."</td> <td id='".$fetched_username."'>".$fetched_username."</td> <td id='".$fetched_email."'><a href='mailto:".$fetched_email."'>". $fetched_email."</a></td> <td id='".$fetched_user_type."'>".$fetched_user_type."</td> <td align='right'><a id='".$row_count."' class='edit' title='Edit'><img src='img/edit.png' border='0' align='left'></a><a id='".$fetched_username."' class='delete' title='Delete'><img src='img/ delete.png' border='0' align='right'></a></td> </tr>"; $row_count += 1; } echo $result; ?> </tbody> <tfoot> <tr id="user_table1pager"> <td colspan="5" align="center" valign="bottom"><img src="/newsite/ css/images/first.png" class="first"/> <img src="/newsite/css/images/ prev.png" class="prev"/> <input type="text" class="pagedisplay" size="3" readonly="readonly"/> <img src="/newsite/css/images/next.png" class="next"/> <img src="/ newsite/css/images/last.png" class="last"/> <select class="pagesize"> <option value="10">10</option> <option selected="selected" value="20">20</option> </select></td> </tr> </tfoot> </table> <? break; case "add": $username = $_POST['user_username']; $password = md5($_POST['user_password']); $email = $_POST['user_email']; $user_type = $_POST['user_type']; $query = "INSERT INTO users (username,password,email,user_type) VALUES ('$username','$password','$email','$user_type')"; mysql_query($query) or die('MySQL error: ' . mysql_error() . '<hr/ >' . $query); break; case "delete": $user_id = (int)$_POST['user_id']; $query = "DELETE FROM users WHERE id ='$user_id'"; mysql_query($query); break; case "edit": $user_id = (int)$_POST['user_id']; $edit_user_type = $_POST['edit_user_user_type']; $edit_user_email = $_POST['edit_user_email']; if (!empty($_POST['edit_user_password'])) { $edit_user_password = md5($_POST['edit_user_password']); $update_user_password = "UPDATE users SET password = '$edit_user_password' WHERE id ='$user_id'"; mysql_query($update_user_password); } $update_user_query .= "UPDATE users SET email = '$edit_user_email', user_type = '$edit_user_type' WHERE id ='$user_id'"; mysql_query($update_user_query); break; } }else{ header ("Location: index.html"); } ?>