Foros del Web » Programando para Internet » Javascript »

Es posible llamar una funcion dentro de otra y retornar datos con ajax???

Estas en el tema de Es posible llamar una funcion dentro de otra y retornar datos con ajax??? en el foro de Javascript en Foros del Web. Cordial saludo. Estoy trabajando con php 5.3.1, json Tengo el siguiente caso: en una funcion envio guardar los datos del formulario con ajax y php; ...
  #1 (permalink)  
Antiguo 28/03/2012, 19:16
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 10 meses
Puntos: 2
Pregunta Es posible llamar una funcion dentro de otra y retornar datos con ajax???

Cordial saludo.

Estoy trabajando con php 5.3.1, json

Tengo el siguiente caso: en una funcion envio guardar los datos del formulario con ajax y php; lo hace de maravillas pero quiero que cuando guarde un dato automaticamente en la parte de abajo aparezca una tabla con los datos que va guardando, esa parte no la he podido hacer porque no me retorna nada cuando llamo a la funcion de mostrardatos.

Sin embargo hice una trampa y es la siguiente: en el formulario puse un boton en una capa oculta que llama el formulario, cree una pagina que la utilizaria como popup donde mando a darle click a ese boton del form padre.

Lo que hago es al finalizar la operación de guardar con ajax mando a llamar esa pagina para que se ejecute el boton del formulario padre y llame la funcion de la tabla con datos y la cierro de una vez la pagina popup. Lo malo es que se ve el parpadeo, como si fuera php puro.

que puedo hacer?? o al menos como hago la pagina oculta pero que igual mande a activar el boton.

Agradezco la ayuda y sugerencias que me puedan brindar.
  #2 (permalink)  
Antiguo 28/03/2012, 21:00
Avatar de truman_truman  
Fecha de Ingreso: febrero-2010
Ubicación: /home/user
Mensajes: 1.341
Antigüedad: 14 años, 10 meses
Puntos: 177
Respuesta: Es posible llamar una funcion dentro de otra y retornar datos con ajax???

Tendrías que verificar si se guardo el registro, mediante mysql_affected_rows(), si es mayor que cero quiere decir que el registro se guardó correctamente, sino No se guardó, este resultado lo guardás en un indice del array json que estás recibiendo, éste se debería imprimir mediante print_r(json_encode($array_json));
si es mayor que cero imprimis el mensaje sino mensaje de error
__________________
la la la
  #3 (permalink)  
Antiguo 28/03/2012, 21:58
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 10 meses
Puntos: 2
Pregunta Respuesta: Es posible llamar una funcion dentro de otra y retornar datos con ajax???

cordial saludo truman pero en el mensaje escribi que guardar me funciona de maravillas, tengo que mostrar los datos que va guardando en una tabla en la parte de abajo.

tengo dos funciones como les muestro:

Cita:
//aqui quiero llenar la tabla con datos
function DetallePendientes(){
tf ="BUSCAR_DETALLE_PENDIENTE";
url="DetallePendientes.php?op="+4+"&CodigoPendient e="+document.form.TxtCodiPend.value;
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);

return true;
}

//aqui guardo
function Guardar(){
tf = "GUARDAR_CONSUMO";
url="GuardarPendiente.php?Op="+1+"&CedMedico="+doc ument.form.CodMedico.value;
http.open("GET", url, true);
http.onreadystatechange = handleHttpResponse;
http.send(null);
}

function handleHttpResponse(){
if (http.readyState == 4){
results = eval(http.responseText);

if(tf == "BUSCAR_DETALLE_PENDIENTE"){
if (http.readyState == 4){
results = eval(http.responseText);

cadena = "<table align=center border=0 width=98%>"
cadena+= "<tr><td align=center width=18%>PLU</td><td align=center width=48%>MEDICAMENTO</td><td align=center width=10%>CANTIDAD</td><td align=center width=10%>SALDO</td><td align=center width=10%>COSTO</td></tr>";
if(results != null){
for(i = 0; i < results.length; i++){
Contador = i + 1;
dato = results[i];
if(i%2 == 0){
cadena+="<tr bgcolor=#CCCCCC>";
}
else {
cadena+="<tr bgcolor=#FFFFFF>";
}

if(dato.TmpMedValor > 0){
var estilo = 'EstiloReporte';
}
else{
var estilo = 'Obligatorio';
}
<!-- ValorTotal = Math.round((dato.TmpDetPenCosto / dato.TmpDetPenSaldo) * dato.TmpDetPenCantiPendiente);
cadena+= "<td width=18% align=center class="+estilo+"><input name='ConsecDetalPendi"+i+"' type='hidden' id='ConsecDetalPendi"+i+"' value='"+dato.TmpDetPenCodigo+"' />"+dato.TmpMedCodigo+"</td>";
cadena+= "<td width=48% align=left class="+estilo+">"+dato.TmpMedNomResolucion+"</td>";
cadena+= "<td width=10% align=center class="+estilo+"><input class='Objetos' type='text' name='TxtCantidad"+i+"' id='TxtCantidad"+i+"' onKeyPress='return ValidarSaldoMedicamento(event, this.name, document.form.Saldo"+i+".value,document.form.Conse cDetalPendi"+i+".value)' size='5' value='"+dato.TmpDetPenCantiPendiente+"'/></td>";
cadena+= "<td width=10% align=center class="+estilo+"><input name='Saldo"+i+"' type='hidden' id='Saldo"+i+"' value='"+dato.TmpDetPenSaldo+"' />"+dato.TmpDetPenSaldo+"</td>";
cadena+= "<td width=10% align=center class="+estilo+"><input name='Costo"+i+"' type='hidden' id='Costo"+i+"' value='"+dato.TmpDetPenCosto+"' />"+dato.TmpDetPenCosto+"</td>";
cadena+= "</tr>";
}
cadena+= "</table>"
document.getElementById('datos').style.display='bl ock';
document.getElementById('datos').innerHTML=cadena;
document.form.items.values = Contador;
document.form.BtnGuardar.disabled = false;
}
else{
document.getElementById('datos').style.display='no ne';
}
}
}

if(tf == "GUARDAR_CONSUMO"){
if(results == 1){
document.getElementById('respuesta').style.display ='block';
document.getElementById('respuesta').innerHTML="Se guardo exitosamente";
}
//aqui quiero llamar la funcion pero no me retorna nada
DetallePendientes();
}
}
}
de lugar de DetallePendientes llamo a la pagina que les comente y la cierro y ahi si hace la llamada de la funcion y retorna la tabla pero no quiero que se vea cuando se abre y se cierra la pagina

Agradezco la ayuda y sugerencias que me puedan brindar

Etiquetas: ajax, formulario, funcion, js, php, posible, retornar, botones
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 14:30.