Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] lectura de datos con ajax no funciona en IE

Estas en el tema de lectura de datos con ajax no funciona en IE en el foro de Javascript en Foros del Web. Hola, tengo el siguiente problema, hago una actualización de stock de articulos, hasta ahí funciona bien. Pero si hay un erro, me debe tirar una ...
  #1 (permalink)  
Antiguo 29/04/2013, 13:07
 
Fecha de Ingreso: abril-2007
Ubicación: Merlo
Mensajes: 314
Antigüedad: 17 años
Puntos: 3
lectura de datos con ajax no funciona en IE

Hola, tengo el siguiente problema, hago una actualización de stock de articulos, hasta ahí funciona bien. Pero si hay un erro, me debe tirar una alert y al input le debe recargar el dato que aun esta en la bd, lo hice asi.
En FF, Chrome, opera y Safari funciona ok!!
Funcion javascript en el archivo HTML
Código HTML:
Ver original
  1. <script language="JavaScript">
  2. <!--
  3. function ActualizaStock(form)
  4. {
  5.     var cantidad = form.canti.value;
  6.     var id = form.id.value;
  7.     var a = mysql_update_query("update stock set cantidad = " + cantidad + " WHERE id_producto = " + id);
  8.     if(a)
  9.     {
  10.         alert("Actualizacion Realizada Satisfactoriamente");
  11.     }
  12.     else
  13.     {
  14.         alert("No se Pudo Actualizar el Precio");
  15.        
  16.     }
  17.     var b = mysql_consulta_valor("SELECT cantidad FROM stock WHERE id_producto = " + id, "cantidad");
  18.         alert(b);
  19.         document.getElementById('form_'+id).canti.value = b;
  20. }
  21. //-->

El form lo armo asi, de forma dinamica!!!
Código PHP:
Ver original
  1. while($fila = mysql_fetch_array($result))
  2. {
  3.     ?>
  4.     <tr>
  5.     <td class="ctd"><?=$fila['id_productos'];?></td>
  6.     <td class="ctd"align="center">
  7.     <?
  8.     if((strlen(CAT_IMAGE_DIR)+2) < strlen($fila['imagen']))
  9.     {
  10.     ?>
  11.         <a href="http://www.forosdelweb.com/f13/<?=$fila['imagen'];?>" rel="lightbox"><img src="http://www.forosdelweb.com/f13/<?=$fila['imagen'];?>"width="90"></a>
  12.     <?
  13.     }
  14.     ?>
  15.     </td>
  16.     <td class="ctd"><a><?=$fila['titulo'];?></a></td><td class="ctd"align="center">
  17.     <form method="POST" id="form_<?=$fila['id_productos'];?>">
  18.         <input type="text" name="canti" size="10"value="<?=trae_stock($fila['id_productos']);?>"><input type="hidden"name="id" value="<?=$fila['id_productos'];?>">
  19.         <input type="button"onclick="ActualizaStock(this.form); return false"value="Cargar">
  20.     </form>
  21.     </td>
  22.  
  23.     </tr>
  24.     <?
  25. }
  26. ?>


Archivo JS de Ajax.
Código Javascript:
Ver original
  1. var urlMysqlwsphp="mysql_js.php";
  2. function mysql_update_query(query) {
  3.     var req = new ajaxRequest();
  4.     var url = urlMysqlwsphp + "?q=" + query + "&op=1";
  5.     req.open("GET", url, false)
  6.     req.send(null);
  7.     return req.responseText;
  8. }
  9. function mysql_select_query(query) {
  10.     var req = new ajaxRequest();
  11.     var url = urlMysqlwsphp + "?q=" + query + "&op=2";
  12.     req.open("GET", url, false)
  13.     req.send(null);
  14.     return req.responseText;
  15. }
  16. function mysql_consulta_valor(query, dato){
  17.     var req = new ajaxRequest();
  18.     var url = urlMysqlwsphp + "?q=" + query + "&d=" + dato + "&op=3";
  19.     req.open("GET", url, false)
  20.     req.send(null);
  21.     return req.responseText;
  22. }
  23.  
  24. function ajaxRequest() {
  25.     try {
  26.         var request = new XMLHttpRequest();
  27.     } catch (e1) {
  28.         try {
  29.             request = new ActiveXObject("Msxml2.XMLHTTP");
  30.         } catch (e2) {
  31.             try {
  32.                 request = new ActiveXObject("Microsoft.XMLHTTP");
  33.             } catch (e3) {
  34.                 request = false;
  35.             }
  36.         }
  37.     }
  38.     return request;
  39. }
Archivo PHP: mysql_js.php
Código PHP:
Ver original
  1. <?
  2. $sql = $_GET['q'];
  3. $op = $_GET['op'];
  4. $dato = $_GET['d'];
  5.  
  6. $sql = str_replace("\\","",$sql);
  7. switch($op)
  8. {
  9.     case 1:
  10.         $res = mysql_consulta($sql);
  11.     break;
  12.     case 2:
  13.         $res = mysql_consulta_codigo($sql);
  14.     break;
  15.     case 3:
  16.         $res = mysql_consulta_valor($sql, $dato);
  17.     break;
  18. }
  19. echo $res;
  20. return;
  21. function mysql_consulta($sql)
  22. {
  23.     include("include/conexion.php");
  24.     $result = mysql_query($sql);
  25.     if(!$result){
  26.         return false;
  27.     }
  28.     return true;
  29. }
  30. function mysql_consulta_valor($sql, $dato)
  31. {
  32.     include("include/conexion.php");
  33.     $result = mysql_query($sql);
  34.     if(!$result){
  35.         return false;
  36.     }
  37.     if($fila = mysql_fetch_array($result))
  38.     {
  39.         $res = $fila[$dato];
  40.     }
  41.     else
  42.     {
  43.         $res = false;
  44.     }
  45.     return $res;
  46. }
  47. function mysql_consulta_codigo($sql)
  48. {
  49.     include("include/conexion.php");
  50.     $result = mysql_query($sql);
  51.     if(!$result){
  52.         $res = 3;
  53.         exit;
  54.     }
  55.     if($fila = mysql_fetch_array($result))
  56.     {
  57.         $res = true;
  58.     }
  59.     else
  60.     {
  61.         $res = false;
  62.     }
  63.     return $res;
  64. }
  65. ?>
Por lo que veo, en IE la funcion mysql_consulta_valor devuelve el valor anterior o un 1.
Puede ser un tema de cache???

Esto este inspirado en la biblioteca mysqlws.js, ya que no se mucho de Ajax!!
Cualquier ayuda viene re bien!!!
Muchas Gracias!!!

Última edición por Gustavo1973; 29/04/2013 a las 13:22
  #2 (permalink)  
Antiguo 29/04/2013, 14:52
Avatar de emprear
Colaborador
 
Fecha de Ingreso: junio-2007
Ubicación: me mudé
Mensajes: 8.388
Antigüedad: 16 años, 10 meses
Puntos: 1567
Respuesta: lectura de datos con ajax no funciona en IE

No conoczco esa libreria mysqlws.js, pero si fuese un tema de cache probá de agregar un parámetro extra

Código:
var url = urlMysqlwsphp + "?q=" + query + "&d=" + dato + "&op=3&tiempo=" + new Date().getTime();
eso debería solucionarlo

Saludos
__________________
La voz de las antenas va, sustituyendo a Dios.
Cuando finalice la mutación, nueva edad media habrá
S.R.

Última edición por emprear; 29/04/2013 a las 16:47
  #3 (permalink)  
Antiguo 29/04/2013, 16:44
 
Fecha de Ingreso: abril-2007
Ubicación: Merlo
Mensajes: 314
Antigüedad: 17 años
Puntos: 3
Respuesta: lectura de datos con ajax no funciona en IE

Muchas gracias Emprear, funcionó perfectamente!!!

Etiquetas: ajax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:25.