Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ayuda: volver a llamar un ajax dentro de un div

Estas en el tema de Ayuda: volver a llamar un ajax dentro de un div en el foro de Frameworks JS en Foros del Web. Hola a todos: tengo problemas para volver a llamar aun ajax dentro de un mismo div Les explico: Tengo un modulo para asignar maquinas a ...
  #1 (permalink)  
Antiguo 30/04/2009, 12:19
 
Fecha de Ingreso: marzo-2009
Mensajes: 11
Antigüedad: 15 años, 9 meses
Puntos: 0
Ayuda: volver a llamar un ajax dentro de un div

Hola a todos:

tengo problemas para volver a llamar aun ajax dentro de un mismo div

Les explico:

Tengo un modulo para asignar maquinas a un trabajador de un area X, Cuando selecciono un area me aparece una lista de trabajadores para esa area, al seleccionar un trabajador me lista las maquinas disponibles para ser asignadas en un div llamado "conte_maquina" y si tubiese maquinas asignadas lista primero sus maquinas asignadas y debajo las maquinas disponibles.

Si tuviese maquinas asignadas aparecen marcadas con checks en una capa "conte_maquina2", hasta ahi todo funciona bien, lo que quiero hacer ahora es que al hacer click en el check marcado salga una opción de confirmacion( Esta seguro que desea eliminar) al confirmar debe eliminarse esa maquina y debe volver a cargar el ajax en la capa "conte_maquina".

el problema es que si elimina pero no me sale la función de confirmación y cuando vuelvo a llamar el ajax aparece en blanco.

pongo el código y lo explico:

Funcion ajax:

Código:
function cargar_maquina(Page){var contenedorVal;
	contenedorVal=document.getElementById('conte_maquina');
	ajax=objetoAjax();	ajax.open("POST", Page, true);	
	ajax.onreadystatechange=function()
	{ if (ajax.readyState==4){contenedorVal.innerHTML=ajax.responseText;}}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("id="+id);
}
Aqui aparece lista de maquinas

Código:
<div id="conte_maquina" style="overflow:auto; overflow-x: hidden; height:99px;">

</div>
ajax_cargar_maq.php

Código:
<? include("../../../Datos/Conexion.php");
$conecta=new conectate();
$conecta->Conectar();

include ("../../../Negocio/manteni.class.php");
include ("../../../Negocio/select.class.php");
include ("../../../Negocio/general.class.php");

$cant=clase_general::mos_count_maq_usu($_GET["co_usu"]);
// si tiene una maquina asignada lo muestra en una nueva cada
if ($cant>0)
{  ?>
<div id="conte_maqui2">
<!-- Tabla para mostrar las maquina que han sido asignadas a un trabajador -->
<table border="1" cellpadding="0" cellspacing="0" width="100%" style="border-collapse:collapse; border-color:#600600;">
<? $sql_a=clase_general::gene_usu_maq($_GET["co_usu"]);
$i=1;
$linea=1;
while($rows_a=mysql_fetch_array($sql_a))
{ ?>
<tr class="fila_<?=$linea?>" style="cursor:pointer;" onclick="window.open('ajax/ajax_hard_maq.php?co_hard=<?=$rows_a[0];?>','frame');">
	<td width="14%">
    
    <input name="chk_maqui<?=$i;?>" id="chk_maqui<?=$i;?>" type="checkbox" value="<?=$rows_a[0];?>" checked="checked" onclick="javascript:eli_maqui('ajax/ajax_eli_mquna.php?co_usu=<?=$_GET["co_usu"]?>',this.value);return false" /></td>
    <!-- eli_maqui()para que eliminine la maquina asiganda a un usuario y envio el codigo q recupero $_GET["co_usu"] -->
	<td width="86%"><?=$rows_a[1];?></td>
</tr>
<? $i++;
	if($linea==1){ $linea=2;}else{$linea=1;}
} ?>
</table> <!-- Tabla para mostrar las maquina que han sido asignadas a un trabajador -->
</div>

<!-- Tabla para mostrar las máquinas disponibles -->
<table border="1" cellpadding="0" cellspacing="0" width="100%" style="border-collapse:collapse; border-color:#600600;">
<? $sql=clase_selec::mos_maquina();
$i=1; 
$linea=1;
while($rows=mysql_fetch_array($sql))
{ ?>
<tr class="fila_<?=$linea?>" style="cursor:pointer;" onclick="window.open('ajax/ajax_hard_maq.php?co_hard=<?=$rows[0];?>','frame');">
	<td width="14%"><input name="chk_maq<?=$i;?>" id="chk_maq<?=$i;?>" type="checkbox" value="<?=$rows[0];?>" /></td>
	<td width="86%"><?=$rows[1];?></td>
</tr>
<? $i++;
	if($linea==1){ $linea=2;}else{$linea=1;}
} ?>
</table> <!-- Tabla para mostrar las máquinas disponibles -->

<? } else { //echo $cant;?>

<table border="1" cellpadding="0" cellspacing="0" width="100%" style="border-collapse:collapse; border-color:#600600;">
<? $sql=clase_selec::mos_maquina();
$i=1; 
$linea=1;
while($rows=mysql_fetch_array($sql))
{ ?>
<tr class="fila_<?=$linea?>" style="cursor:pointer;" onclick="window.open('ajax/ajax_hard_maq.php?co_hard=<?=$rows[0];?>','frame');">
	<td width="14%"><input name="chk_maq<?=$i;?>" id="chk_maq<?=$i;?>" type="checkbox" value="<?=$rows[0];?>" /></td>
	<td width="86%"><?=$rows[1];?></td>
</tr>
<? $i++;
	if($linea==1){ $linea=2;}else{$linea=1;}
} ?>
</table>
<?}?>
funcion ajax para eliminar a un usuario

/
Código:
/ Funcion para eliminar maquina asignada a un trabajador
function eli_maqui(Page, campo){var contenedorVal;
	contenedorVal=document.getElementById('conte_maquina');
	ajax=objetoAjax();	ajax.open("POST", Page, true);	
	ajax.onreadystatechange=function()
	{ if (ajax.readyState==4){contenedorVal.innerHTML=ajax.responseText;}}
	ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
	ajax.send("id="+campo);
	}

pagina ajax_eli_mquna.php para que elimine la maquina

Código:
<? include("../../../Datos/Conexion.php");
$conecta=new conectate();
$conecta->Conectar();

include ("../../../Negocio/manteni.class.php");
include ("../../../Negocio/select.class.php");
include ("../../../Negocio/general.class.php");
// $_GET["cod_usu"]; recupero el codigo del usuario
// $_POST["id"]; recupero el codigo de maquina
?>
<script type="text/javascript">
window.onload =llamar;
function llamar(){
if (confirm('Esta seguro que desea eliminar esta Maquina')) {
	<?   clase_manteni::eli_maq_usu($_POST["id"]); //elimina la máquina del trabajador
	    clase_manteni::edit_mquna($_POST["id"]);  // actualiza la maquina en estado 1 
	 ?>
   }
}
</script>

<? echo "<script language='javascript'>location.href=('ajax_cargar_maq.php?co_usu=".$_GET["cod_usu"]."');</script>"; ?>
en esta parte donde tengo problemas;
cuando le doy click en el check no llama script, se ejecuta el codigo PHP, en el div "conte_maquina" aparece en blanco

esto aparece cuando inspecciono con el firebug

Código:
<script type="text/javascript">
window.onload =llamar;
function llamar(){
if (confirm('Esta seguro que desea eliminar esta Maquina')) {
}
}
</script>

<script language='javascript'>location.href='ajax_cargar_maq.php?co_usu=6050'</script>
por favor ayudenme.

es urgente mi jefe me va ahorcar.
  #2 (permalink)  
Antiguo 06/10/2009, 09:07
 
Fecha de Ingreso: mayo-2009
Ubicación: Pereira
Mensajes: 4
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda: volver a llamar un ajax dentro de un div

Yo tuve el mismo problema y lo solucione con iframes
  #3 (permalink)  
Antiguo 15/10/2009, 10:17
 
Fecha de Ingreso: octubre-2009
Mensajes: 1
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: Ayuda: volver a llamar un ajax dentro de un div

Hola amigos(as),
A mi tambien me llevo un gran dolor de cabeza este problema y varias horas de analisis con prueba y error, hasta que al final di con una solución, para obviar la utilización de iframes.
El antecedente de mi caso es que al actualizar el contenido de un div, mediante ajax, llamado desde un boton que se encuentra dentro del mismo, se recargaba la página completa y por ende se perdia la utilidad que representa ajax, y a demás, como era de esperar, no mostraba los resultados pedidos.
La solución que encontré fue que antes de iniciar los procedimientos de ajax hay que "blanquear" el contenido del div en cuestión ("document.getElementById("mydiv").innerHTML = ''"). De esta simple manera se soluciona el problema.
Saludos

Última edición por will79cl; 15/10/2009 a las 10:24
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 19:37.