mails.html 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <html>
  2. <head>
  3. <style>
  4. label{display:block; width:70%; max-width:500px}
  5. label input:not([type="checkbox"]) { float:right; clear:both;}
  6. label input:after { clear:both; }
  7. #parte2,#validar { display: none; }
  8. </style>
  9. <script>
  10. function $(element) {
  11. var el = document.querySelectorAll(element);
  12. if(el.length==1)
  13. return el[0];
  14. return el;
  15. }
  16. function post(url,data,ok,error) {
  17. var request = new XMLHttpRequest();
  18. request.open('POST', url, true);
  19. request.onload = function() {
  20. if(this.status>=200 && this.status < 400)
  21. ok(this.responseText);
  22. else
  23. error(this.responseText);
  24. }
  25. request.onerror = error;
  26. request.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
  27. if ( typeof data === 'string')
  28. request.send(data);
  29. else
  30. request.send(JSON.stringify(data));
  31. }
  32. window.onload = function() {
  33. $("#validar").onclick = function() {
  34. post("mails_code_validator.php",
  35. { mail: $("#pedirmail").value, codigo: $("#pedircodigo").value },
  36. populateForm,
  37. function(data) { alert(data); }
  38. );
  39. };
  40. $("#pedircodigo").onclick = inputUpdated;
  41. $("#pedircodigo").onfocus = inputUpdated;
  42. $("#pedircodigo").onkeyup = inputUpdated;
  43. $("#pedircodigo").onpaste = inputUpdated;
  44. function inputUpdated() {
  45. if( $("#pedircodigo").value.length == 0 )
  46. $("#pedir").style.display="block";
  47. else
  48. $("#pedir").style.display="none";
  49. if( $("#pedircodigo").value.length == 10 )
  50. $("#validar").style.display="block";
  51. else
  52. $("#validar").style.display="none";
  53. };
  54. $("#enviar").onclick = function() {
  55. var obj = {};
  56. Array.prototype.forEach.call($("#parte2 input"),function(item) {
  57. if(item.type=="checkbox")
  58. obj[item.id]=item.checked ? 1 : 0;
  59. else
  60. obj[item.id]=item.value;
  61. });
  62. obj.codigo=$("#pedircodigo").value; //Lo tomo del form, total ya esta validado
  63. post("update_mail_data.php",
  64. obj,
  65. function(data) { alert(data); },
  66. function (data) { alert(data+"err"); }
  67. );
  68. };
  69. function populateForm(obj) {
  70. if ( typeof obj === 'string')
  71. obj=JSON.parse(obj);
  72. $("#email").value=obj.mail;
  73. $("#nombre").value=obj.nombre;
  74. $("#apellido").value=obj.apellido;
  75. $("#zona").value=obj.zona;
  76. $("#provincia").value=obj.provincia;
  77. $("#pais").value=obj.pais;
  78. $("#telefono").value=obj.telefono;
  79. $("#baja").checked=obj.baja;
  80. $("#parte1").style.display="none";
  81. $("#parte2").style.display="block";
  82. }
  83. };
  84. </script>
  85. </head>
  86. <div id="parte1">
  87. <label>
  88. Email:
  89. <input type="email" id="pedirmail" placeholder="Su email" >
  90. </label>
  91. <label>
  92. Codigo:
  93. <input id="pedircodigo" type="text" placeholder="Su codigo" maxlength="10">
  94. </label>
  95. <input type="submit" id="pedir" value="Pedir codigo">
  96. <input type="submit" id="validar" value="Validar codigo">
  97. <label id="resultCodigo"></label>
  98. </div>
  99. <div id="parte2">
  100. <label value="email">
  101. Email:
  102. <input id="email" type="email" placeholder="" disabled readonly>
  103. </label>
  104. <label>
  105. Nombre:
  106. <input id="nombre" type="text" placeholder="">
  107. </label>
  108. <label>
  109. Apellido:
  110. <input id="apellido" type="text">
  111. </label>
  112. <label>
  113. Zona:
  114. <input id="zona" type="text">
  115. </label>
  116. <label>
  117. Provincia:
  118. <input id="provincia" type="text">
  119. </label>
  120. <label>
  121. Pais:
  122. <input id="pais" type="text">
  123. </label>
  124. <label>
  125. Darse de baja:
  126. <input id="baja" type="checkbox">
  127. </label>
  128. <label>
  129. Telefono:
  130. <input id="telefono" type="text">
  131. </label>
  132. <input type="submit" value="Enviar" id="enviar">
  133. <label id="resultCodigo"></label>
  134. <body>
  135. </body>
  136. </html>