13 - Ejemplos (2)

[editar]
Tutorial creado por Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=547
27 de Octubre de 2005
Ejemplo 5
cliente


PHP [inicio]

  1. <script language="javascript"  type="text/javascript">
  2. /*
  3. * Funciones ejemplo-5 AJAX - BEGIN
  4. */
  5. function objetus() {
  6. try {
  7. xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  8. } catch (e) {
  9. try {
  10. xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  11. } catch (E) {
  12. xmlhttp = false;
  13. }
  14. }
  15. if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  16. xmlhttp = new XMLHttpRequest();
  17. }
  18. return xmlhttp
  19. }
  20. /*
  21. * ejemplo 5 BEGIN
  22. */
  23. function ejemplo5_start()
  24. {
  25. ej5_P();
  26. return
  27. }
  28. function ej5_P()
  29. {
  30. _objetus=objetus()
  31. _target=document.getElementById('ej5_td_P')
  32. document.getElementById('ej5_mensajes').innerHTML = "";
  33. _target.style.display=
  34. _values_send="funcion=ejemplo5&opcion=padre"
  35. _URL_="procesador.php?"
  36. _objetus.open("GET",_URL_+"&"+_values_send,true);
  37. _objetus.onreadystatechange=function() {
  38. if (_objetus.readyState
    1)
  39. {
  40. (_target.innerHTML )?(_target.innerHTML="Cargando Ciudades"):null;
  41. }
  42. else if(_objetus.readyState
    4)
  43. {
  44. if(_objetus.status 200)
  45. {
  46. _target.innerHTML = _objetus.responseText;
  47. document.getElementById('ej5_td_H').style.display=
  48. ej5_H(document.getElementById('ej5_P').value);
  49. document.getElementById('ej5_td_submit').style.display=
  50. document.getElementById('ej5_add_P').style.display=
  51. document.getElementById('ej5_add_H').style.display=
  52. }
  53. }
  54. }
  55. _objetus.send(null);
  56. }
  57. function ej5_H(idena)
  58. {
  59. _objetus=objetus()
  60. _target=document.getElementById('ej5_td_H')
  61. _loader=document.getElementById('ej5_loader')
  62. _values_send="funcion=ejemplo5&opcion=hijo&id="+idena
  63. _URL_="procesador.php?"
  64. _loader.style.display=
  65. _objetus.open("GET",_URL_+"&"+_values_send,true);
  66. _objetus.onreadystatechange=function() {
  67. if(_objetus.readyState
    4)
  68. {
  69. if(_objetus.status 200)
  70. {
  71. _target.innerHTML = _objetus.responseText;
  72. _loader.style.display='none'
  73. }
  74. }
  75. }
  76. _objetus.send(null);
  77. }
  78. function ej5_procesar()
  79. {
  80. if(document.getElementById('ej5_P').value
    )        {
  81. window.alert('No se a seleccionado una ciudad')
  82. return
  83. }
  84. _objetus=objetus()
  85. _padre=document.getElementById('ej5_P').value
  86. _hijo=document.getElementById('ej5_H').value
  87. _loader=document.getElementById('ej5_loader')
  88. _values_send="funcion=ejemplo5&opcion=procesar&id="+_padre+","+_hijo
  89. _URL_="procesador.php?"
  90. _loader.style.display=
  91. _objetus.open("GET",_URL_+"&"+_values_send,true);
  92. _objetus.onreadystatechange=function() {
  93. if(_objetus.readyState 4)
  94. {
  95. if(_objetus.status
    200)
  96. {
  97. document.getElementById('ej5_mensajes').innerHTML = _objetus.responseText;
  98. _loader.style.display='none'
  99. }
  100. }
  101. }
  102. _objetus.send(null);
  103. }
  104. function ej5_add_P()
  105. {
  106. _objetus=objetus()
  107. _loader=document.getElementById('ej5_loader')
  108. _name_P=document.getElementById('ej5_add_P_nombre')
  109. _add_P_submit=document.getElementById('ej5_add_P_submit')
  110. _add_P_submit.disabled=true
  111. _values_send="funcion=ejemplo5&opcion=add_P&nombre="+encodeURIComponent(_name_P.value)
  112. _URL_="procesador.php?"
  113. _loader.style.display=
  114. _objetus.open("GET",_URL_+"&"+_values_send,true);
  115. _objetus.onreadystatechange=function() {
  116. if(_objetus.readyState 4)
  117. {
  118. if(_objetus.status
    200)
  119. {
  120. resp_mensaje=_objetus.responseText;
  121. ej5_P();
  122. document.getElementById('ej5_mensajes').innerHTML = resp_mensaje
  123. _loader.style.display='none'
  124. _name_P.value=
  125. _add_P_submit.disabled=false
  126. }
  127. }
  128. }
  129. _objetus.send(null);
  130. }
  131. function ej5_del_P()
  132. {
  133. if(document.getElementById('ej5_P').value )        {
  134. window.alert('No se a seleccionado una ciudad')
  135. return
  136. }
  137. _objetus=objetus()
  138. _loader=document.getElementById('ej5_loader')
  139. _del_P_submit=document.getElementById('ej5_del_P_submit')
  140. _del_P_submit.disabled=true
  141. _values_send="funcion=ejemplo5&opcion=del_P&id="+document.getElementById('ej5_P').value
  142. _URL_="procesador.php?"
  143. _loader.style.display=
  144. _objetus.open("GET",_URL_+"&"+_values_send,true);
  145. _objetus.onreadystatechange=function() {
  146. if(_objetus.readyState
    4)
  147. {
  148. if(_objetus.status 200)
  149. {
  150. resp_mensaje=_objetus.responseText;
  151. ej5_P();
  152. document.getElementById('ej5_mensajes').innerHTML = resp_mensaje
  153. _loader.style.display='none'
  154. _del_P_submit.disabled=false
  155. }
  156. }
  157. }
  158. _objetus.send(null);
  159. }
  160. function ej5_add_H()
  161. {
  162. if(document.getElementById('ej5_P').value
    )        {
  163. window.alert('No se a seleccionado una ciudad')
  164. return
  165. }
  166. _objetus=objetus()
  167. _name_H=document.getElementById('ej5_add_H_nombre')
  168. _loader=document.getElementById('ej5_loader')
  169. _add_H_submit=document.getElementById('ej5_add_H_submit')
  170. _add_H_submit.disabled=true
  171. _values_send="funcion=ejemplo5&opcion=add_H&id="+document.getElementById('ej5_P').value+"&nombre="+encodeURIComponent(_name_H.value)
  172. _URL_="procesador.php?"
  173. _loader.style.display=
  174. _objetus.open("GET",_URL_+"&"+_values_send,true);
  175. _objetus.onreadystatechange=function() {
  176. if(_objetus.readyState 4)
  177. {
  178. if(_objetus.status
    200)
  179. {
  180. resp_mensaje=_objetus.responseText;
  181. ej5_H(document.getElementById('ej5_P').value);
  182. document.getElementById('ej5_mensajes').innerHTML = resp_mensaje
  183. _loader.style.display='none'
  184. _name_H.value=
  185. _add_H_submit.disabled=false
  186. }
  187. }
  188. }
  189. _objetus.send(null);
  190. }
  191. function ej5_del_H()
  192. {
  193. if(document.getElementById('ej5_H').value )        {
  194. window.alert('No se a seleccionado una zona')
  195. return
  196. }
  197. _objetus=objetus()
  198. _loader=document.getElementById('ej5_loader')
  199. _del_H_submit=document.getElementById('ej5_del_H_submit')
  200. _del_H_submit.disabled=true
  201. _values_send="funcion=ejemplo5&opcion=del_H&id="+document.getElementById('ej5_P').value+","+document.getElementById('ej5_H').value
  202. _URL_="procesador.php?"
  203. _loader.style.display=
  204. _objetus.open("GET",_URL_+"&"+_values_send,true);
  205. _objetus.onreadystatechange=function() {
  206. if(_objetus.readyState
    4)
  207. {
  208. if(_objetus.status 200)
  209. {
  210. resp_mensaje=_objetus.responseText;
  211. ej5_H(document.getElementById('ej5_P').value);
  212. document.getElementById('ej5_mensajes').innerHTML = resp_mensaje
  213. _loader.style.display='none'
  214. _del_H_submit.disabled=false
  215. }
  216. }
  217. }
  218. _objetus.send(null);
  219. }
  220. /*
  221. * ejemplo 5 END
  222. */
  223. /*
  224. * Funciones ejemplo1 AJAX - END
  225. */
  226. </script>
  227. <input type="button" value="Ejecutar ejemplo-5" class="boton" onclick="ej5_P();">
  228. <br>
  229. <br>
  230. <div id='ej5_mensajes'></div>
  231. <br>
  232. <table id=tabla-clase-A cellpadding="5">
  233. <tr>
  234. <td class="articulo_body" id="ej5_td_P" style='display:none;'></td>
  235. <td class="articulo_body" id="ej5_td_H" style='display:none;'></td>
  236. <td class="articulo_body" id="ej5_td_submit" style='display:none;'>
  237. <input type="button" class="boton" value="Procesar" onclick='ej5_procesar();'>
  238. </td>
  239. </tr>
  240. <tr><td id='ej5_loader' class='articulo' colspan=3 style='display:none;text-align:center;'>
  241. Procesando.........
  242. </td></tr>
  243. <tr><td id='ej5_add_P' class='articulo' style='display:none;text-align:center;'>
  244. <input type="text" class="text" id="ej5_add_P_nombre">
  245. <br><br>
  246. <input type="button" class="boton" id="ej5_add_P_submit" value="add" onclick="ej5_add_P();">
  247. <input type="button" class="boton" id="ej5_del_P_submit" value="del" onclick="ej5_del_P();">
  248. </td>
  249. <td id='ej5_add_H' class='articulo' style='display:none;text-align:center;'>
  250. <input type="text" class="text" id="ej5_add_H_nombre">
  251. <br><br>
  252. <input type="button" class="boton" id="ej5_add_H_submit" value="add" onclick="ej5_add_H();">
  253. <input type="button" class="boton" id="ej5_del_H_submit" value="del" onclick="ej5_del_H();">
  254. </td>
  255. <td style='display:none;'></td>
  256. </tr>
  257. </table>

PHP [fin]
[editar]

44 opiniones

ggg

ggggggg
ui

F
Sólo funcionaba la primera vez.

Este ejemplo sólo me funcionaba la primera vez que lo usaba, luego la consola de errores de javascript devolvía el error: "objetus is not a function". Para arreglarlo era necesario declarar en la función objetus la variable objetus como nula en primera línea de la misma. Var objetus = false;

pd: gracias, muy bueno el curso.
Refrescar con ajax.

Hola que tal como le harias si tienes que refrescar una pagina automáticamente con ajax. Gracias.
Recomendaciones.

Que tal, he visto que algunas personas tienen algunas dudas que son muy comunes. Primero me gustaria decir que el hecho de comenzar a aprender a utilizar ajax haciendolo todo tu mismo (la creacion del objeto xmlhttprequest, la recepcion de los valores, los codigos de error y estatus, etc. ) es muy bueno ya que cuando te encuentras problemas esto te puede ayudar a solucionarlos. Ahora bien con el tiempo se puede comenzar a utilizar algunas utilerias que te ayudan a desligarte de lo comentado anteriormente y enfocarte a tu propio codigo, estas utilerias (entre muchas otras) son prototype, jquery, script. Acul. Us, etc

finalmente lecomento a aquellas personas que desean algo mas grafico, pueden recurrir a jmaki, el cual es un plug in para netbeans el cual encapsula las funcionalidades de las utilerias antes mencionadas pero en un entorno mas grafico.
1 2 3 4 5 6 7 ... 9 | siguiente >

Tutoriales relacionados con 'Tutorial de AJAX (Asynchronous JavaScript + XML)'

Entiendase que AJAX no se refiere a usar el objeto XMLHttpRequest de manera indispensable porque... Más »

Autor y licencia de 'Tutorial de AJAX (Asynchronous JavaScript + XML)'


Tutorial de Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=547 CopyLeft
Este trabajo está licenciado bajo la Creative Commons License. 1999-2005 © :: MonoNeurona.org ::
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.