habilidad_action.php 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?php
  2. session_start();
  3. require_once '../include/bd_pdo.php';
  4. if(!isset($_POST['tipo'])){
  5. $return['error'] = 'Error! No se recibieron los datos.';
  6. } else {
  7. switch ($_POST['tipo']) {
  8. case 1: //Select All
  9. $error = '';
  10. $habilidades = array();
  11. $stmt = $pdo->prepare('SELECT * FROM alu_fs_habilidad(:Usuario_id, null)');
  12. $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
  13. if(!$stmt->execute()){
  14. $error = 'No fue posible obtener las habilidades';
  15. print_r($stmt->errorInfo());
  16. } else
  17. $habilidades = $stmt->fetchAll();
  18. $stmt->closeCursor();
  19. $stmt = null;
  20. if(count($habilidades) > 0 && empty($error)){
  21. $return['html'] = generaHabilidades($habilidades);
  22. } else {
  23. if (!empty($error))
  24. $return['error'] = $error;
  25. else{
  26. $return['html'] = '<div class="msgBox d-flex flex-row justify-content-center align-items-center mt-5">
  27. <img src="img/triangulos.svg" class="imgBoxIzq" />
  28. <img src="img/triangulos.svg" class="imgBoxDer" />
  29. <hr class="hrArriba">
  30. <hr class="hrAbajo">
  31. <div class="d-flex flex-column justify-content-center align-items-center display-5 text-center p-4">
  32. <div>Aún no tienes<span class="text-azul1 mx-1">ninguna</span>habilidad capturada</div>
  33. </div>
  34. </div>';
  35. }
  36. }
  37. break;
  38. case 2: //Add
  39. $_POST['habilidad'] = filter_var($_POST['habilidad'], FILTER_SANITIZE_STRING);
  40. $_POST['nivel'] = filter_var($_POST['nivel'], FILTER_SANITIZE_NUMBER_INT);
  41. $stmt = $pdo->prepare('SELECT * FROM alu_fi_habilidad(:Usuario_id, :Habilidad_nombre, :Habilidad_nivel)');
  42. $stmt->bindParam(':Habilidad_nombre', $_POST['habilidad']);
  43. $stmt->bindParam(':Habilidad_nivel', $_POST['nivel']);
  44. $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
  45. if(!$stmt->execute()){
  46. print_r($stmt->errorInfo());
  47. $return['error'] = 'No fue posible agregar la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
  48. }
  49. else
  50. $return['ok'] = 'Se agregó correctamente la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
  51. $stmt->closeCursor();
  52. $stmt = null;
  53. break;
  54. case 3: //Update
  55. $_POST['habilidad'] = filter_var($_POST['habilidad'], FILTER_SANITIZE_STRING);
  56. $_POST['nivel'] = filter_var($_POST['nivel'], FILTER_SANITIZE_NUMBER_INT);
  57. $stmt = $pdo->prepare('SELECT * FROM alu_fu_habilidad(:Usuario_id, :Habilidad_id, :Habilidad_nombre, :Habilidad_nivel)');
  58. $stmt->bindParam(':Habilidad_nombre', $_POST['habilidad']);
  59. $stmt->bindParam(':Habilidad_nivel', $_POST['nivel']);
  60. $stmt->bindParam(':Habilidad_id', $_POST['id']);
  61. $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
  62. if(!$stmt->execute()){
  63. print_r($stmt->errorInfo());
  64. $return['error'] = 'No fue posible editar la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
  65. }
  66. else
  67. $return['ok'] = 'Se editó correctamente la habilidad <span class="text-azul1">' . $_POST['habilidad'] . '</span>';
  68. $stmt->closeCursor();
  69. $stmt = null;
  70. break;
  71. case 4: //Delete
  72. $stmt = $pdo->prepare('SELECT * FROM alu_fd_habilidad(:Habilidad_id, :Usuario_id)');
  73. $stmt->bindParam(':Habilidad_id', $_POST['id']);
  74. $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
  75. if(!$stmt->execute()){
  76. print_r($stmt->errorInfo());
  77. $return['error'] = 'No fue posible eliminar la habilidad';
  78. }
  79. else
  80. $return['ok'] = 'Se eliminó de manera exitosa la habilidad';
  81. $stmt->closeCursor();
  82. $stmt = null;
  83. break;
  84. case 5: //Select One
  85. $habilidad = array();
  86. $stmt = $pdo->prepare('SELECT * FROM alu_fs_habilidad(:Usuario_id, :Habilidad_id)');
  87. $stmt->bindParam(':Usuario_id', $_SESSION['usuario_id']);
  88. $stmt->bindParam(':Habilidad_id', $_POST['id']);
  89. if(!$stmt->execute()){
  90. $return['error'] = 'No fue posible obtener los datos de la habilidad';
  91. print_r($stmt->errorInfo());
  92. } else {
  93. $habilidad = $stmt->fetch();
  94. $return['habilidad'] = $habilidad['HabilidadTecnica_nombre'];
  95. $return['nivel'] = $habilidad['HabilidadTecnica_nivel'];
  96. }
  97. $stmt->closeCursor();
  98. $stmt = null;
  99. break;
  100. }
  101. }
  102. $return['json'] = json_encode($return);
  103. echo json_encode($return);
  104. function generaHabilidades($habilidades){
  105. $html = '';
  106. $texto = '';
  107. $tipo = '';
  108. foreach ($habilidades as $habilidad){
  109. switch ($habilidad['HabilidadTecnica_nivel']){
  110. case 1: $texto = 'Básico'; $tipo = 'empty'; break;
  111. case 2: $texto= 'Intermedio'; $tipo = 'half'; break;
  112. case 3: $texto= 'Avanzado'; $tipo = 'full'; break;
  113. default: $texto = ''; $tipo = ''; break;
  114. }
  115. $html .= '<div class="tarjeta p-3 d-flex flex-column justify-content-start align-items-center">
  116. <div class="align-self-end">
  117. <span class="ing-editar iconAcciones text-azul2" data-id="' . $habilidad['HabilidadTecnica_id'] . '"></span>
  118. <span class="ing-basura iconAcciones text-danger" data-id="' . $habilidad['HabilidadTecnica_id'] . '"></span>
  119. </div>
  120. <i class="display-3 ing-insignia3 ' . $tipo . ' mb-2"></i>
  121. <label>' . $texto . '</label>
  122. <div class="display-6 text-center text-primary flex-grow-1 d-flex flex-row justify-content-center align-items-center">' . $habilidad['HabilidadTecnica_nombre'] . '</div>
  123. </div>';
  124. }
  125. return $html;
  126. }