Advertisement
Guest User

Untitled

a guest
Aug 9th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.72 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <title>a title</title>
  5. <meta charset="utf-8">
  6. <meta name="viewport" content="width=1000, initial-scale=1">
  7. <meta http-equiv="X-UA-Compatible" content="IE=Edge">
  8. <link rel="stylesheet" href="//fonts.googleapis.com/css?family=Oxygen:400,700">
  9. <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
  10. <link rel="stylesheet" href="css/layout.css">
  11. <script charset="utf-8" src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
  12. <script charset="utf-8" src="//cdn.datatables.net/1.10.0/js/jquery.dataTables.js"></script>
  13. <script charset="utf-8" src="//cdn.jsdelivr.net/jquery.validation/1.13.1/jquery.validate.min.js"></script>
  14. <script charset="utf-8" src="js/webapp.js"></script>
  15. </head>
  16. <body>
  17. <div id="page_container">
  18. <h1>Dead Sea Premier Admin Dashboard</h1>
  19. <button type="button" class="button" id="add_client">Add Client</button>
  20. <table class="datatable" id="table_users">
  21. <thead>
  22. <tr>
  23. <th>First Name</th>
  24. <th>Last Name</th>
  25. <th>Email</th>
  26. <th>Phone Number</th>
  27. <th>Address</th>
  28. <th>City</th>
  29. <th>Zip Code</th>
  30. <th>State</th>
  31. <th>Country</th>
  32. <th>Mailing List</th>
  33. </tr>
  34. </thead>
  35. <tbody>
  36. </tbody>
  37. </table>
  38. </div>
  39. <div class="lightbox_bg"></div>
  40. <div class="lightbox_container">
  41. <div class="lightbox_close"></div>
  42. <div class="lightbox_content">
  43. <h2>Add User</h2>
  44. <form class="form add" id="form_client" data-id="" novalidate>
  45. <div class="input_container">
  46. <label for="firstName">First Name: <span class="required">*</span></label>
  47. <div class="field_container">
  48. <input type="text" class="text" name="firstName" id="firstName" value="" required>
  49. </div>
  50. </div>
  51. <div class="input_container">
  52. <label for="lastName">Last Name: <span class="required">*</span></label>
  53. <div class="field_container">
  54. <input type="text" class="text" name="lastName" id="lastName" value="" required>
  55. </div>
  56. </div>
  57. <div class="input_container">
  58. <label for="email">Email: <span class="required">*</span></label>
  59. <div class="field_container">
  60. <input type="email" step="1" class="text" name="email" id="email" value="" required>
  61. </div>
  62. </div>
  63. <div class="input_container">
  64. <label for="phone">Phone: <span class="required">*</span></label>
  65. <div class="field_container">
  66. <input type="text"class="text" name="phone" id="phone" value="" required>
  67. </div>
  68. </div>
  69. <div class="input_container">
  70. <label for="address">Address: <span class="required">*</span></label>
  71. <div class="field_container">
  72. <input type="number" min="0" class="text" name="address" id="address" value="" required>
  73. </div>
  74. </div>
  75. <div class="input_container">
  76. <label for="city">City: <span class="required">*</span></label>
  77. <div class="field_container">
  78. <input type="number" step="1" min="0" class="text" name="city" id="city" value="" required>
  79. </div>
  80. </div>
  81. <div class="input_container">
  82. <label for="region">Region: <span class="required">*</span></label>
  83. <div class="field_container">
  84. <input type="text" class="text" name="region" id="region" value="" required>
  85. </div>
  86. </div>
  87. <div class="input_container">
  88. <label for="country">Country: <span class="required">*</span></label>
  89. <div class="field_container">
  90. <input type="text" class="text" name="country" id="country" value="" required>
  91. </div>
  92. </div>
  93. <div class="input_container">
  94. <label for="zip">Zip: <span class="required">*</span></label>
  95. <div class="field_container">
  96. <input type="text" class="text" name="zip" id="zip" value="" required>
  97. </div>
  98. </div>
  99. <div class="input_container">
  100. <label for="mailing">Mailing List: <span class="required">*</span></label>
  101. <div class="field_container">
  102. <input type="text" class="text" name="mailing" id="mailing" value="" required>
  103. </div>
  104. </div>
  105. <div class="button_container">
  106. <button type="submit">Add Client</button>
  107. </div>
  108. </form>
  109.  
  110. </div>
  111. </div>
  112.  
  113. <noscript id="noscript_container">
  114. <div id="noscript" class="error">
  115. <p>JavaScript support is needed to use this page.</p>
  116. </div>
  117. </noscript>
  118.  
  119. <div id="message_container">
  120. <div id="message" class="success">
  121. <p>This is a success message.</p>
  122. </div>
  123. </div>
  124.  
  125. <div id="loading_container">
  126. <div id="loading_container2">
  127. <div id="loading_container3">
  128. <div id="loading_container4">
  129. Loading, please wait...
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134.  
  135. </body>
  136. </html>
  137.  
  138. $(document).ready(function(){
  139.  
  140. // On page load: datatable
  141. var table_users = $('#table_users').dataTable({
  142. "ajax": "data.php?job=get_users",
  143. "columns": [
  144. { "data": "firstName", "sClass": "firstName" },
  145. { "data": "lastName"},
  146. { "data": "email"},
  147. { "data": "phone"},
  148. { "data": "address"},
  149. { "data": "city"},
  150. { "data": "region"},
  151. { "data": "country"},
  152. { "data": "zip"},
  153. { "data": "mailing"},
  154. { "data": "functions", "sClass": "functions" }
  155. ],
  156. "aoColumnDefs": [
  157. { "bSortable": false, "aTargets": [-1] }
  158. ],
  159. "lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "All"]],
  160. "oLanguage": {
  161. "oPaginate": {
  162. "sFirst": " ",
  163. "sPrevious": " ",
  164. "sNext": " ",
  165. "sLast": " ",
  166. },
  167. "sLengthMenu": "Records per page: _MENU_",
  168. "sInfo": "Total of _TOTAL_ records (showing _START_ to _END_)",
  169. "sInfoFiltered": "(filtered from _MAX_ total records)"
  170. }
  171. });
  172.  
  173. // On page load: form validation
  174. jQuery.validator.setDefaults({
  175. success: 'valid',
  176. errorPlacement: function(error, element){
  177. error.insertBefore(element);
  178. },
  179. highlight: function(element){
  180. $(element).parent('.field_container').removeClass('valid').addClass('error');
  181. },
  182. unhighlight: function(element){
  183. $(element).parent('.field_container').addClass('valid').removeClass('error');
  184. }
  185. });
  186. var form_client = $('#form_client');
  187. form_client.validate();
  188.  
  189. // Show message
  190. function show_message(message_text, message_type){
  191. $('#message').html('<p>' + message_text + '</p>').attr('class', message_type);
  192. $('#message_container').show();
  193. if (typeof timeout_message !== 'undefined'){
  194. window.clearTimeout(timeout_message);
  195. }
  196. timeout_message = setTimeout(function(){
  197. hide_message();
  198. }, 8000);
  199. }
  200. // Hide message
  201. function hide_message(){
  202. $('#message').html('').attr('class', '');
  203. $('#message_container').hide();
  204. }
  205.  
  206. // Show loading message
  207. function show_loading_message(){
  208. $('#loading_container').show();
  209. }
  210. // Hide loading message
  211. function hide_loading_message(){
  212. $('#loading_container').hide();
  213. }
  214.  
  215. // Show lightbox
  216. function show_lightbox(){
  217. $('.lightbox_bg').show();
  218. $('.lightbox_container').show();
  219. }
  220. // Hide lightbox
  221. function hide_lightbox(){
  222. $('.lightbox_bg').hide();
  223. $('.lightbox_container').hide();
  224. }
  225. // Lightbox background
  226. $(document).on('click', '.lightbox_bg', function(){
  227. hide_lightbox();
  228. });
  229. // Lightbox close button
  230. $(document).on('click', '.lightbox_close', function(){
  231. hide_lightbox();
  232. });
  233. // Escape keyboard key
  234. $(document).keyup(function(e){
  235. if (e.keyCode == 27){
  236. hide_lightbox();
  237. }
  238. });
  239.  
  240. // Hide iPad keyboard
  241. function hide_ipad_keyboard(){
  242. document.activeElement.blur();
  243. $('input').blur();
  244. }
  245.  
  246. // Add company button
  247. $(document).on('click', '#add_client', function(e){
  248. e.preventDefault();
  249. $('.lightbox_content h2').text('Add Client');
  250. $('#form_client button').text('Add Client');
  251. $('#form_client').attr('class', 'form add');
  252. $('#form_client').attr('data-id', '');
  253. $('#form_client .field_container label.error').hide();
  254. $('#form_client .field_container').removeClass('valid').removeClass('error');
  255. $('#form_client #firstName').val('');
  256. $('#form_client #lastName').val('');
  257. $('#form_client #email').val('');
  258. $('#form_client #phone').val('');
  259. $('#form_client #address').val('');
  260. $('#form_client #city').val('');
  261. $('#form_client #region').val('');
  262. $('#form_client #country').val('');
  263. $('#form_client #zip').val('');
  264. $('#form_client #mailing').val('');
  265. show_lightbox();
  266. });
  267.  
  268. // Add company submit form
  269. $(document).on('submit', '#form_client.add', function(e){
  270. e.preventDefault();
  271. // Validate form
  272. if (form_client.valid() == true){
  273. // Send company information to database
  274. hide_ipad_keyboard();
  275. hide_lightbox();
  276. show_loading_message();
  277. var form_data = $('#form_client').serialize();
  278. var request = $.ajax({
  279. url: 'data.php?job=add_user',
  280. cache: false,
  281. data: form_data,
  282. dataType: 'json',
  283. contentType: 'application/json; charset=utf-8',
  284. type: 'get'
  285. });
  286. request.done(function(output){
  287. if (output.result == 'success'){
  288. // Reload datable
  289. table_users.api().ajax.reload(function(){
  290. hide_loading_message();
  291. var firstName = $('#firstName').val();
  292. show_message("Client '" + firstName + "' was added successfully.", 'success');
  293. }, true);
  294. } else {
  295. hide_loading_message();
  296. show_message('Add request failed', 'error');
  297. }
  298. });
  299. request.fail(function(jqXHR, textStatus){
  300. hide_loading_message();
  301. show_message('Add request failed: ' + textStatus, 'error');
  302. });
  303. }
  304. });
  305.  
  306. // Edit company button
  307. $(document).on('click', '.function_edit a', function(e){
  308. e.preventDefault();
  309. // Get company information from database
  310. show_loading_message();
  311. var id = $(this).data('id');
  312. var request = $.ajax({
  313. url: 'data.php?job=get_user',
  314. cache: false,
  315. data: 'id=' + id,
  316. dataType: 'json',
  317. contentType: 'application/json; charset=utf-8',
  318. type: 'get'
  319. });
  320. request.done(function(output){
  321. if (output.result == 'success'){
  322. $('.lightbox_content h2').text('Edit Client');
  323. $('#form_client button').text('Edit Client');
  324. $('#form_client').attr('class', 'form edit');
  325. $('#form_client').attr('data-id', id);
  326. $('#form_client .field_container label.error').hide();
  327. $('#form_client .field_container').removeClass('valid').removeClass('error');
  328. $('#form_client #firstName').val(output.data[0].firstName);
  329. $('#form_client #lastName').val(output.data[0].lastName);
  330. $('#form_client #email').val(output.data[0].email);
  331. $('#form_client #phone').val(output.data[0].phone);
  332. $('#form_client #address').val(output.data[0].address);
  333. $('#form_client #city').val(output.data[0].city);
  334. $('#form_client #region').val(output.data[0].region);
  335. $('#form_client #country').val(output.data[0].country);
  336. $('#form_client #zip').val(output.data[0].zip);
  337. $('#form_client #mailing').val(output.data[0].mailing);
  338. hide_loading_message();
  339. show_lightbox();
  340. } else {
  341. hide_loading_message();
  342. show_message('Information request failed', 'error');
  343. }
  344. });
  345. request.fail(function(jqXHR, textStatus){
  346. hide_loading_message();
  347. show_message('Information request failed: ' + textStatus, 'error');
  348. });
  349. });
  350.  
  351. // Edit company submit form
  352. $(document).on('submit', '#form_client.edit', function(e){
  353. e.preventDefault();
  354. // Validate form
  355. if (form_client.valid() == true){
  356. // Send company information to database
  357. hide_ipad_keyboard();
  358. hide_lightbox();
  359. show_loading_message();
  360. var id = $('#form_client').attr('data-id');
  361. var form_data = $('#form_client').serialize();
  362. var request = $.ajax({
  363. url: 'data.php?job=edit_user&id=' + id,
  364. cache: false,
  365. data: form_data,
  366. dataType: 'json',
  367. contentType: 'application/json; charset=utf-8',
  368. type: 'get'
  369. });
  370. request.done(function(output){
  371. if (output.result == 'success'){
  372. // Reload datable
  373. table_users.api().ajax.reload(function(){
  374. hide_loading_message();
  375. var firstName = $('#firstName').val();
  376. show_message("Client '" + firstName + "' edited successfully.", 'success');
  377. }, true);
  378. } else {
  379. hide_loading_message();
  380. show_message('Edit request failed', 'error');
  381. }
  382. });
  383. request.fail(function(jqXHR, textStatus){
  384. hide_loading_message();
  385. show_message('Edit request failed: ' + textStatus, 'error');
  386. });
  387. }
  388. });
  389.  
  390. // Delete company
  391. $(document).on('click', '.function_delete a', function(e){
  392. e.preventDefault();
  393. var firstName = $(this).data('name');
  394. if (confirm("Are you sure you want to delete '" + firstName + "'?")){
  395. show_loading_message();
  396. var id = $(this).data('id');
  397. var request = $.ajax({
  398. url: 'data.php?job=delete_user&id=' + id,
  399. cache: false,
  400. dataType: 'json',
  401. contentType: 'application/json; charset=utf-8',
  402. type: 'get'
  403. });
  404. request.done(function(output){
  405. if (output.result == 'success'){
  406. // Reload datable
  407. table_users.api().ajax.reload(function(){
  408. hide_loading_message();
  409. show_message("Client '" + firstName + "' deleted successfully.", 'success');
  410. }, true);
  411. } else {
  412. hide_loading_message();
  413. show_message('Delete request failed', 'error');
  414. }
  415. });
  416. request.fail(function(jqXHR, textStatus){
  417. hide_loading_message();
  418. show_message('Delete request failed: ' + textStatus, 'error');
  419. });
  420. }
  421. });
  422.  
  423. });
  424.  
  425. <?php
  426.  
  427. // Database details
  428. $db_server = 'localhost';
  429. $db_username = 'root';
  430. $db_password = '';
  431. $db_name = 'premierDB';
  432.  
  433. // Get job (and id)
  434. $job = '';
  435. $id = '';
  436. if (isset($_GET['job'])){
  437. $job = $_GET['job'];
  438. if ($job == 'get_users' ||
  439. $job == 'get_user' ||
  440. $job == 'add_user' ||
  441. $job == 'edit_user' ||
  442. $job == 'delete_user'){
  443. if (isset($_GET['id'])){
  444. $id = $_GET['id'];
  445. if (!is_numeric($id)){
  446. $id = '';
  447. }
  448. }
  449. } else {
  450. $job = '';
  451. }
  452. }
  453.  
  454. // Prepare array
  455. $mysql_data = array();
  456.  
  457. // Valid job found
  458. if ($job != ''){
  459.  
  460. // Connect to database
  461. $db_connection = mysqli_connect($db_server, $db_username, $db_password, $db_name);
  462. if (mysqli_connect_errno()){
  463. $result = 'error';
  464. $message = 'Failed to connect to database: ' . mysqli_connect_error();
  465. $job = '';
  466. }
  467.  
  468. // Execute job
  469. if ($job == 'get_users'){
  470.  
  471. // Get companies
  472. $query = "SELECT * FROM users ORDER BY firstName ";
  473. $query = mysqli_query($db_connection, $query);
  474. if (!$query){
  475. $result = 'error';
  476. $message = 'query error';
  477. } else {
  478. $result = 'success';
  479. $message = 'query success';
  480. while ($user = mysqli_fetch_array($query)){
  481. $functions = '<div class="function_buttons"><ul>';
  482. $functions .= '<li class="function_edit"><a data-id="' . $user['id'] . '" data-name="' . $user['firstName'] . '"><span>Edit</span></a></li>';
  483. $functions .= '<li class="function_delete"><a data-id="' . $user['id'] . '" data-name="' . $user['firstName'] . '"><span>Delete</span></a></li>';
  484. $functions .= '</ul></div>';
  485. $mysql_data[] = array(
  486. "firstName" => $user['firstName'],
  487. "lastName" => $user['lastName'],
  488. "email" => $user['email'],
  489. "phone" => $user['phone'],
  490. "address" => $user['address'],
  491. "city" => $user['city'],
  492. "region" => $user['region'],
  493. "country" => $user['country'],
  494. "zip" => $user['zip'],
  495. "mailing" => $user['mailing'],
  496. "functions" => $functions
  497. );
  498. }
  499. }
  500.  
  501. } elseif ($job == 'get_user'){
  502.  
  503. // Get company
  504. if ($id == ''){
  505. $result = 'error';
  506. $message = 'id missing';
  507. } else {
  508. $query = "SELECT * FROM users WHERE id = '" . mysqli_real_escape_string($db_connection, $id) . "'";
  509. $query = mysqli_query($db_connection, $query);
  510. if (!$query){
  511. $result = 'error';
  512. $message = 'query error';
  513. } else {
  514. $result = 'success';
  515. $message = 'query success';
  516. while ($user = mysqli_fetch_array($query)){
  517. $mysql_data[] = array(
  518. "firstName" => $user['firstName'],
  519. "lastName" => $user['lastName'],
  520. "email" => $user['email'],
  521. "phone" => $user['phone'],
  522. "address" => $user['address'],
  523. "city" => $user['city'],
  524. "region" => $user['region'],
  525. "country" => $user['country'],
  526. "zip" => $user['zip'],
  527. "mailing" => $user['mailing'],
  528. );
  529. }
  530. }
  531. }
  532.  
  533. } elseif ($job == 'add_user'){
  534.  
  535. // Add company
  536. $query = "INSERT INTO users SET ";
  537. if (isset($_GET['firstName'])) { $query .= "firstName = '" . mysqli_real_escape_string($db_connection, $_GET['firstName']) . "', "; }
  538. if (isset($_GET['lastName'])) { $query .= "lastName = '" . mysqli_real_escape_string($db_connection, $_GET['lastName']) . "', "; }
  539. if (isset($_GET['email'])) { $query .= "email = '" . mysqli_real_escape_string($db_connection, $_GET['email']) . "', "; }
  540. if (isset($_GET['phone'])) { $query .= "phone = '" . mysqli_real_escape_string($db_connection, $_GET['phone']) . "', "; }
  541. if (isset($_GET['address'])) { $query .= "address = '" . mysqli_real_escape_string($db_connection, $_GET['address']) . "', "; }
  542. if (isset($_GET['city'])) { $query .= "city = '" . mysqli_real_escape_string($db_connection, $_GET['city']) . "', "; }
  543. if (isset($_GET['region'])) { $query .= "region = '" . mysqli_real_escape_string($db_connection, $_GET['region']) . "'"; }
  544. if (isset($_GET['country'])) { $query .= "country = '" . mysqli_real_escape_string($db_connection, $_GET['country']) . "'"; }
  545. if (isset($_GET['zip'])) { $query .= "zip = '" . mysqli_real_escape_string($db_connection, $_GET['zip']) . "'"; }
  546. if (isset($_GET['mailing'])) { $query .= "mailing = '" . mysqli_real_escape_string($db_connection, $_GET['mailing']) . "'"; }
  547. $query = mysqli_query($db_connection, $query);
  548. if (!$query){
  549. $result = 'error';
  550. $message = 'query error';
  551. } else {
  552. $result = 'success';
  553. $message = 'query success';
  554. }
  555.  
  556. } elseif ($job == 'edit_user'){
  557.  
  558. // Edit user
  559. if ($id == ''){
  560. $result = 'error';
  561. $message = 'id missing';
  562. } else {
  563. $query = "UPDATE users SET ";
  564. if (isset($_GET['firstName'])) { $query .= "firstName = '" . mysqli_real_escape_string($db_connection, $_GET['firstName']) . "', "; }
  565. if (isset($_GET['lastName'])) { $query .= "lastName = '" . mysqli_real_escape_string($db_connection, $_GET['lastName']) . "', "; }
  566. if (isset($_GET['email'])) { $query .= "email = '" . mysqli_real_escape_string($db_connection, $_GET['email']) . "', "; }
  567. if (isset($_GET['phone'])) { $query .= "phone = '" . mysqli_real_escape_string($db_connection, $_GET['phone']) . "', "; }
  568. if (isset($_GET['address'])) { $query .= "address = '" . mysqli_real_escape_string($db_connection, $_GET['address']) . "', "; }
  569. if (isset($_GET['city'])) { $query .= "city = '" . mysqli_real_escape_string($db_connection, $_GET['city']) . "', "; }
  570. if (isset($_GET['region'])) { $query .= "region = '" . mysqli_real_escape_string($db_connection, $_GET['region']) . "'"; }
  571. if (isset($_GET['country'])) { $query .= "country = '" . mysqli_real_escape_string($db_connection, $_GET['country']) . "'"; }
  572. if (isset($_GET['zip'])) { $query .= "zip = '" . mysqli_real_escape_string($db_connection, $_GET['zip']) . "'"; }
  573. if (isset($_GET['mailing'])) { $query .= "mailing = '" . mysqli_real_escape_string($db_connection, $_GET['mailing']) . "'"; }
  574. $query .= "WHERE id = '" . mysqli_real_escape_string($db_connection, $id) . "'";
  575. $query = mysqli_query($db_connection, $query);
  576. if (!$query){
  577. $result = 'error';
  578. $message = 'query error';
  579. } else {
  580. $result = 'success';
  581. $message = 'query success';
  582. }
  583. }
  584.  
  585. } elseif ($job == 'delete_user'){
  586.  
  587. // Delete company
  588. if ($id == ''){
  589. $result = 'error';
  590. $message = 'id missing';
  591. } else {
  592. $query = "DELETE FROM users WHERE id = '" . mysqli_real_escape_string($db_connection, $id) . "'";
  593. $query = mysqli_query($db_connection, $query);
  594. if (!$query){
  595. $result = 'error';
  596. $message = 'query error';
  597. } else {
  598. $result = 'success';
  599. $message = 'query success';
  600. }
  601. }
  602.  
  603. }
  604.  
  605. // Close database connection
  606. mysqli_close($db_connection);
  607.  
  608. }
  609.  
  610. // Prepare data
  611. $data = array(
  612. "result" => $result,
  613. "message" => $message,
  614. "data" => $mysql_data
  615. );
  616.  
  617. // Convert PHP array to JSON array
  618. $json_data = json_encode($data);
  619. print $json_data;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement