I tried the code above for the Clone Button and it works great. It appears that it’s adding the clone as a new record before it’s been edited though. I apologize, I don’t believe i mentioned that it would need to be doctored before being added. Is there a way to remedy that? Also, I’ve attached the code I’m currently working with, hopefully that will help. Thank you again.
webapp.js
$(document).ready(function(){
// On page load: datatable
var table_companies = $('#table_companies').dataTable({
"ajax": "data.php?job=get_companies",
"columns": [
{ "data": "var_1" },
{ "data": "var_2", "sClass": "var_2" },
{ "data": "var_3" },
{ "data": "var_4" },
{ "data": "var_5" },
{ "data": "var_6" },
{ "data": "var_7" },
// { "data": "var_8" },
{ "data": "functions", "sClass": "functions" }
],
"aoColumnDefs": [
{ "bSortable": false, "aTargets": [-1] }
],
"lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
"oLanguage": {
"oPaginate": {
"sFirst": " ",
"sPrevious": " ",
"sNext": " ",
"sLast": " ",
},
"sLengthMenu": "Records per page: _MENU_",
"sInfo": "Total of _TOTAL_ records (showing _START_ to _END_)",
"sInfoFiltered": "(filtered from _MAX_ total records)"
}
});
var form_company = $('#form_company');
form_company.validate();
// Show message
function show_message(message_text, message_type){
$('#message').html('<p>' + message_text + '</p>').attr('class', message_type);
$('#message_container').show();
if (typeof timeout_message !== 'undefined'){
window.clearTimeout(timeout_message);
}
timeout_message = setTimeout(function(){
hide_message();
}, 8000);
}
// Hide message
function hide_message(){
$('#message').html('').attr('class', '');
$('#message_container').hide();
}
// Show loading message
function show_loading_message(){
$('#loading_container').show();
}
// Hide loading message
function hide_loading_message(){
$('#loading_container').hide();
}
// Show lightbox
function show_lightbox(){
$('.lightbox_bg').show();
$('.lightbox_container').show();
}
// Hide lightbox
function hide_lightbox(){
$('.lightbox_bg').hide();
$('.lightbox_container').hide();
}
// Lightbox background
$(document).on('click', '.lightbox_bg', function(){
hide_lightbox();
});
// Lightbox close button
$(document).on('click', '.lightbox_close', function(){
hide_lightbox();
});
// Escape keyboard key
$(document).keyup(function(e){
if (e.keyCode == 27){
hide_lightbox();
}
});
// Hide iPad keyboard
function hide_ipad_keyboard(){
document.activeElement.blur();
$('input').blur();
}
// Add button
$(document).on('click', '#add_company', function(e){
e.preventDefault();
$('.lightbox_content h2').text('New File');
$('#form_company button').text('Add New File');
$('#form_company').attr('class', 'form add');
$('#form_company').attr('data-id', '');
$('#form_company .field_container label.error').hide();
$('#form_company .field_container').removeClass('valid').removeClass('error');
$('#form_company #var_1').val('');
$('#form_company #var_2').val('');
$('#form_company #var_3').val('');
$('#form_company #var_4').val('');
$('#form_company #var_5').val('');
$('#form_company #var_6').val('');
$('#form_company #var_7').val('');
$('#form_company #var_8').val('');
$('#form_company #var_9').val('');
show_lightbox();
});
// Add submit form
$(document).on('submit', '#form_company.add', function(e){
e.preventDefault();
// Validate form
if (form_company.valid() == true){
// Send information to database
hide_ipad_keyboard();
hide_lightbox();
show_loading_message();
var form_data = $('#form_company').serialize();
var request = $.ajax({
url: 'data.php?job=add_company',
cache: false,
data: form_data,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
type: 'get'
});
request.done(function(output){
if (output.result == 'success'){
// Reload datatable
table_companies.api().ajax.reload(function(){
hide_loading_message();
var var_2 = $('#var_2').val();
show_message("Record for '" + var_2 + "' added successfully.", 'success');
}, true);
} else {
hide_loading_message();
show_message('Add request failed', 'error');
}
});
request.fail(function(jqXHR, textStatus){
hide_loading_message();
show_message('Add request failed: ' + textStatus, 'error');
});
}
});
// Edit button
$(document).on('click', '.function_edit a', function(e){
e.preventDefault();
// Get information from database
show_loading_message();
var id = $(this).data('id');
var request = $.ajax({
url: 'data.php?job=get_company',
cache: false,
data: 'id=' + id,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
type: 'get'
});
request.done(function(output){
if (output.result == 'success'){
$('.lightbox_content h2').text('Edit File');
$('#form_company button').text('Update Record');
$('#form_company').attr('class', 'form edit');
$('#form_company').attr('data-id', id);
$('#form_company .field_container label.error').hide();
$('#form_company .field_container').removeClass('valid').removeClass('error');
$('#form_company #var_1').val(output.data[0].var_1);
$('#form_company #var_2').val(output.data[0].var_2);
$('#form_company #var_3').val(output.data[0].var_3);
$('#form_company #var_4').val(output.data[0].var_4);
$('#form_company #var_5').val(output.data[0].var_5);
$('#form_company #var_6').val(output.data[0].var_6);
$('#form_company #var_7').val(output.data[0].var_7);
$('#form_company #var_8').val(output.data[0].var_8);
$('#form_company #var_9').val(output.data[0].var_9);
hide_loading_message();
show_lightbox();
} else {
hide_loading_message();
show_message('Information request failed', 'error');
}
});
request.fail(function(jqXHR, textStatus){
hide_loading_message();
show_message('Information request failed: ' + textStatus, 'error');
});
});
// Edit submit form
$(document).on('submit', '#form_company.edit', function(e){
e.preventDefault();
// Validate form
if (form_company.valid() == true){
// Send information to database
hide_ipad_keyboard();
hide_lightbox();
show_loading_message();
var id = $('#form_company').attr('data-id');
var form_data = $('#form_company').serialize();
var request = $.ajax({
url: 'data.php?job=edit_company&id=' + id,
cache: false,
data: form_data,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
type: 'get'
});
request.done(function(output){
if (output.result == 'success'){
// Reload datatable
table_companies.api().ajax.reload(function(){
hide_loading_message();
var var_2 = $('#var_2').val();
show_message("Record for '" + var_2 + "' edited successfully.", 'success');
}, true);
} else {
hide_loading_message();
show_message('Edit request failed', 'error');
}
});
request.fail(function(jqXHR, textStatus){
hide_loading_message();
show_message('Edit request failed: ' + textStatus, 'error');
});
}
});
// Duplicate button
$(document).on('click', '.function_clone a', function(e){
e.preventDefault();
// Get information from database
show_loading_message();
var id = $(this).data('id');
var request = $.ajax({
url: 'data.php?job=get_company',
cache: false,
data: 'id=' + id,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
type: 'get'
});
request.done(function(output){
if (output.result == 'success'){
$('.lightbox_content h2').text('New File (Duplicated)');
$('#form_company button').text('Insert New Record');
$('#form_company').attr('class', 'form edit');
$('#form_company').attr('data-id', id);
$('#form_company .field_container label.error').hide();
$('#form_company .field_container').removeClass('valid').removeClass('error');
$('#form_company #var_1').val(output.data[0].var_1);
$('#form_company #var_2').val(output.data[0].var_2);
$('#form_company #var_3').val(output.data[0].var_3);
$('#form_company #var_4').val(output.data[0].var_4);
$('#form_company #var_5').val(output.data[0].var_5);
$('#form_company #var_6').val(output.data[0].var_6);
$('#form_company #var_7').val(output.data[0].var_7);
$('#form_company #var_8').val(output.data[0].var_8);
$('#form_company #var_9').val(output.data[0].var_9);
hide_loading_message();
show_lightbox();
} else {
hide_loading_message();
show_message('Information request failed', 'error');
}
});
request.fail(function(jqXHR, textStatus){
hide_loading_message();
show_message('Information request failed: ' + textStatus, 'error');
});
});
// Duplicate submit form
$(document).on('click', '.function_clone a', function(e){
e.preventDefault();
var company_name = $(this).data('name');
if (confirm("Are you sure you want to clone '" + company_name + "'?")){
show_loading_message();
var id = $(this).data('id');
var request = $.ajax({
url: 'data.php?job=clone_company&id=' + id,
cache: false,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
type: 'get'
});
request.done(function(output){
if (output.result == 'success'){
// Reload datable
table_companies.api().ajax.reload(function(){
hide_loading_message();
show_message("Company '" + company_name + "' cloned successfully.", 'success');
}, true);
} else {
hide_loading_message();
show_message('Clone request failed', 'error');
}
});
request.fail(function(jqXHR, textStatus){
hide_loading_message();
show_message('Clone request failed: ' + textStatus, 'error');
});
}
});
// Delete
$(document).on('click', '.function_delete a', function(e){
e.preventDefault();
var var_2 = $(this).data('name');
if (confirm("Are you sure you want to delete '" + var_2 + "'?")){
show_loading_message();
var id = $(this).data('id');
var request = $.ajax({
url: 'data.php?job=delete_company&id=' + id,
cache: false,
dataType: 'json',
contentType: 'application/json; charset=utf-8',
type: 'get'
});
request.done(function(output){
if (output.result == 'success'){
// Reload datatable
table_companies.api().ajax.reload(function(){
hide_loading_message();
show_message("Company '" + var_2 + "' deleted successfully.", 'success');
}, true);
} else {
hide_loading_message();
show_message('Delete request failed', 'error');
}
});
request.fail(function(jqXHR, textStatus){
hide_loading_message();
show_message('Delete request failed: ' + textStatus, 'error');
});
}
});
});
data.php
<?php
// Database details
$db_server = 'localhost';
$db_username = 'root';
$db_password = 'blahblahblah';
$db_name = 'data';
// Get job (and id)
$job = '';
$id = '';
if (isset($_GET['job'])){
$job = $_GET['job'];
if ($job == 'get_companies' ||
$job == 'get_company' ||
$job == 'add_company' ||
$job == 'edit_company' ||
$job == 'delete_company'){
if (isset($_GET['id'])){
$id = $_GET['id'];
if (!is_numeric($id)){
$id = '';
}
}
} else {
$job = '';
}
}
// Prepare array
$mysql_data = array();
// Valid job found
if ($job != ''){
// Connect to database
$db_connection = mysqli_connect($db_server, $db_username, $db_password, $db_name);
if (mysqli_connect_errno()){
$result = 'error';
$message = 'Failed to connect to database: ' . mysqli_connect_error();
$job = '';
}
// Execute job
if ($job == 'get_companies'){
// Get companies
$query = "SELECT * FROM my_table_info ORDER BY var_1";
$query = mysqli_query($db_connection, $query);
if (!$query){
$result = 'error';
$message = 'query error';
} else {
$result = 'success';
$message = 'query success';
while ($company = mysqli_fetch_array($query)){
$functions = '<div class="function_buttons"><ul>';
$functions .= '<li class="function_edit"><a data-id="' . $company['HEADID'] . '" data-name="' . $company['var_2'] . '"><span>Edit</span></a></li>';
$functions .= '<li class="function_clone"><a data-id="' . $company['HEADID'] . '" data-name="' . $company['var_2'] . '"><span>Clone</span></a></li>';
$functions .= '<li class="function_delete"><a data-id="' . $company['HEADID'] . '" data-name="' . $company['var_2'] . '"><span>Delete</span></a></li>';
$functions .= '</ul></div>';
$mysql_data[] = array(
"var_1" => $company['var_1'],
"var_2" => $company['var_2'],
"var_3" => $company['var_3'],
"var_4" => $company['var_4'],
"var_5" => $company['var_5'],
"var_6" => $company['var_6'],
"var_7" => $company['var_7'],
"var_8" => $company['var_8'],
"var_9" => $company['var_9'],
"functions" => $functions
);
}
}
} elseif ($job == 'get_company'){
// Get company
if ($id == ''){
$result = 'error';
$message = 'id missing';
} else {
$query = "SELECT * FROM my_table_info WHERE HEADID = '" . mysqli_real_escape_string($db_connection, $id) . "'";
$query = mysqli_query($db_connection, $query);
if (!$query){
$result = 'error';
$message = 'query error';
} else {
$result = 'success';
$message = 'query success';
while ($company = mysqli_fetch_array($query)){
$mysql_data[] = array(
"var_1" => $company['var_1'],
"var_2" => $company['var_2'],
"var_3" => $company['var_3'],
"var_4" => $company['var_4'],
"var_5" => $company['var_5'],
"var_6" => $company['var_6'],
"var_7" => $company['var_7'],
"var_8" => $company['var_8'],
"var_9" => $company['var_9']
);
}
}
}
} elseif ($job == 'add_company'){
// Add company
$query = "INSERT INTO my_table_info SET ";
if (isset($_GET['var_1'])) { $query .= "var_1 = '" . mysqli_real_escape_string($db_connection, $_GET['var_1']) . "', "; }
if (isset($_GET['var_2'])) { $query .= "var_2 = '" . mysqli_real_escape_string($db_connection, $_GET['var_2']) . "', "; }
if (isset($_GET['var_3'])) { $query .= "var_3 = '" . mysqli_real_escape_string($db_connection, $_GET['var_3']) . "', "; }
if (isset($_GET['var_4'])) { $query .= "var_4 = '" . mysqli_real_escape_string($db_connection, $_GET['var_4']) . "', "; }
if (isset($_GET['var_5'])) { $query .= "var_5 = '" . mysqli_real_escape_string($db_connection, $_GET['var_5']) . "', "; }
if (isset($_GET['var_6'])) { $query .= "var_6 = '" . mysqli_real_escape_string($db_connection, $_GET['var_6']) . "', "; }
if (isset($_GET['var_7'])) { $query .= "var_7 = '" . mysqli_real_escape_string($db_connection, $_GET['var_7']) . "', "; }
if (isset($_GET['var_8'])) { $query .= "var_8 = '" . mysqli_real_escape_string($db_connection, $_GET['var_8']) . "', "; }
if (isset($_GET['var_9'])) { $query .= "var_9 = '" . mysqli_real_escape_string($db_connection, $_GET['var_9']) . "'"; }
$query = mysqli_query($db_connection, $query);
if (!$query){
$result = 'error';
$message = 'query error';
} else {
$result = 'success';
$message = 'query success';
}
} elseif ($job == 'edit_company'){
// Edit company
if ($id == ''){
$result = 'error';
$message = 'id missing';
} else {
$query = "UPDATE my_table_info SET ";
if (isset($_GET['var_1'])) { $query .= "var_1 = '" . mysqli_real_escape_string($db_connection, $_GET['var_1']) . "', "; }
if (isset($_GET['var_2'])) { $query .= "var_2 = '" . mysqli_real_escape_string($db_connection, $_GET['var_2']) . "', "; }
if (isset($_GET['var_3'])) { $query .= "var_3 = '" . mysqli_real_escape_string($db_connection, $_GET['var_3']) . "', "; }
if (isset($_GET['var_4'])) { $query .= "var_4 = '" . mysqli_real_escape_string($db_connection, $_GET['var_4']) . "', "; }
if (isset($_GET['var_5'])) { $query .= "var_5 = '" . mysqli_real_escape_string($db_connection, $_GET['var_5']) . "', "; }
if (isset($_GET['var_6'])) { $query .= "var_6 = '" . mysqli_real_escape_string($db_connection, $_GET['var_6']) . "', "; }
if (isset($_GET['var_7'])) { $query .= "var_7 = '" . mysqli_real_escape_string($db_connection, $_GET['var_7']) . "', "; }
if (isset($_GET['var_8'])) { $query .= "var_8 = '" . mysqli_real_escape_string($db_connection, $_GET['var_8']) . "', "; }
if (isset($_GET['var_9'])) { $query .= "var_9 = '" . mysqli_real_escape_string($db_connection, $_GET['var_9']) . "'"; }
$query .= "WHERE HEADID = '" . mysqli_real_escape_string($db_connection, $id) . "'";
$query = mysqli_query($db_connection, $query);
if (!$query){
$result = 'error';
$message = 'query error';
} else {
$result = 'success';
$message = 'query success';
}
}
} elseif ($job == 'clone_company'){
// Clone company
if ($id == ''){
$result = 'error';
$message = 'id missing';
} else {
$query = "INSERT INTO my_table_info(var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9) ".
"SELECT var_1, var_2, var_3, var_4, var_5, var_6, var_7, var_8, var_9 FROM my_table_info ".
"WHERE HEADID = '" . mysqli_real_escape_string($db_connection, $id) . "'";
$query = mysqli_query($db_connection, $query);
if (!$query){
$result = 'error';
$message = 'query error';
} else {
$result = 'success';
$message = 'query success';
}
}
} elseif ($job == 'delete_company'){
// Delete company
if ($id == ''){
$result = 'error';
$message = 'id missing';
} else {
$query = "DELETE FROM my_table_info WHERE HEADID = '" . mysqli_real_escape_string($db_connection, $id) . "'";
$query = mysqli_query($db_connection, $query);
if (!$query){
$result = 'error';
$message = 'query error';
} else {
$result = 'success';
$message = 'query success';
}
}
}
// Close database connection
mysqli_close($db_connection);
}
// Prepare data
$data = array(
"result" => $result,
"message" => $message,
"data" => $mysql_data
);
// Convert PHP array to JSON array
$json_data = json_encode($data);
print $json_data;
?>