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

necesito guía con envio de datos con $.ajax a php

Estas en el tema de necesito guía con envio de datos con $.ajax a php en el foro de Frameworks JS en Foros del Web. Llevo un buen rato mirando en donde podría tener el error pero no logro encontrar, espero puedan colaborarme. MI problema esta particularmente con el siguiente ...
  #1 (permalink)  
Antiguo 18/08/2012, 15:50
 
Fecha de Ingreso: agosto-2012
Ubicación: Bog
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Exclamación necesito guía con envio de datos con $.ajax a php

Llevo un buen rato mirando en donde podría tener el error pero no logro encontrar, espero puedan colaborarme.
MI problema esta particularmente con el siguiente envío:
Código:
 $.ajax({
            type:"POST",
            dataType:"json",
            url:"adm_control.php",
            data:"nq="+$('#nq').val()+" & th="+$('#th').val()+
            " & tm="+$('#tm').val()+" & leng="+$('#leng').val()+
            " & porcent="+$('#porcent').val(),
            success:function(s){
                if(s.done=="YES"){
                    $('#mensaje').text("La configuración ha sido actualizada!");
                    $('#ok').click(function(){
                        window.location="adm_config.php";
                    });
                    $('#msg').fadeIn('slow');
                    $('#umsg').fadeIn('slow');                    
                }
            }
la página php tiene la siguiente sección que debería encargarse de recoger los datos enviados con ajax:
Código:
if(isset($_POST['nq'])){        
        $data=array(
            'opcion'=>"updateConfig",
            'nq'=>"Cantidad de preguntas=\"".$_POST['nq']."\"\n",
            'th'=>"Tiempo en horas de la prueba=\"".$_POST['th']."\"\n",
            'tm'=>"Tiempo en minutos de la prueba=\"".$_POST['tm']."\"\n",
            'leng'=>"Idioma de la prueba=\"".$_POST['leng']."\"\n",
            'porcent'=>"Porcentaje de aciertos para superar la prueba=\"".$_POST['porcent']."\""
        );
        
       $start->action($data);        
        $data=array('done'=>"YES");
        unset($_POST['nq']);
    }    
    unset($start);
    echo json_encode($data);
El problema es que el if de la pagina php no se valida, y por lo tanto lo que necesito que haga no se hace.
Agradezco cualquier colaboración.
  #2 (permalink)  
Antiguo 18/08/2012, 20:47
Avatar de MrH2  
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: necesito guía con envio de datos con $.ajax a php

Buenas Pablo, no soy un especialista en el tema pero yo empezaria revisando si las variables son correctamente pasadas, yo uso el complemento Firebug de mozilla para ello.

Prueba quitando los espacios entre las comillas cuando encadenas las variables ( ... +" & th="+...)

o bien usa la funcion serialize() para construir la cadena que pasas por POST,

Código:
 $.ajax({
            type:"POST",
            dataType:"json",
            url:"adm_control.php",
            data: $('#nombre_del_formulario').serialize(),
            success:function(s){

 // resto del codigo XD
  #3 (permalink)  
Antiguo 19/08/2012, 11:13
 
Fecha de Ingreso: agosto-2012
Ubicación: Bog
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: necesito guía con envio de datos con $.ajax a php

Ya intente serializando el formulario, y nada, los espacios no afectan en nada, intente quitando los espacios y tampoco, me decidi fue en modificar la forma de envío y hacerlo a lo clásico, enviar el formulario, y recargar la pagina D:.
Gracias por su ayuda de todas maneras MrH2.
  #4 (permalink)  
Antiguo 19/08/2012, 22:25
Avatar de MrH2  
Fecha de Ingreso: agosto-2012
Mensajes: 4
Antigüedad: 11 años, 8 meses
Puntos: 0
De acuerdo Respuesta: necesito guía con envio de datos con $.ajax a php

Mira amigo he probado tus lineas y le he agregado algunas lineas, que supongo las tienes en tu código, y sino agregalas :P Tambien le quite otras ya que mi entencion es provar el envio por ajax y la respuesta.

Mira estos son mis archivos:

admin_config

Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>MrH2 - Test</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<script type="text/javascript">
$(document).on('ready',function() {

	$("#btn").click(function() {
	
		$.ajax({
			type:"POST",
			dataType:"json",
			url:"adm_control.php",
			data:"nq="+$('#nq').val()+" & th="+$('#th').val()+" & tm="+$('#tm').val()+" & leng="+$('#leng').val()+" & porcent="+$('#porcent').val(),
			success:function(s){
				if(s.done=="YES"){
					$('#mensaje').text("La configuración ha sido actualizada!");
				}
			}
		});  
	});
});

</script>

</head>

<body>
<form action="" method="post" enctype="multipart/form-data">
<input id="nq" type="text" value="nq_ok" />
<input id="th" type="text" value="th_ok" />
<input id="tm" type="text" value="tm_ok" />
<input id="leng" type="text" value="leng_ok" />
<input id="porcent" type="text" value="poorcent_ok" />
<input id="btn" name="btn" type="button" value="actualizar"/>
</form>
<div id="mensaje"></div>
</body>
</html> 
admin_control.php

Código HTML:
<?

if(isset($_POST['nq'])){        
        $data=array(
            'opcion'=>"updateConfig",
            'nq'=>"Cantidad de preguntas=\"".$_POST['nq']."\"\n",
            'th'=>"Tiempo en horas de la prueba=\"".$_POST['th']."\"\n",
            'tm'=>"Tiempo en minutos de la prueba=\"".$_POST['tm']."\"\n",
            'leng'=>"Idioma de la prueba=\"".$_POST['leng']."\"\n",
            'porcent'=>"Porcentaje de aciertos para superar la prueba=\"".$_POST['porcent']."\""
        );
        
       //$start->action($data);   // Esta linea la anulo porque no tengo la funcion  action() en este codigo     
        $data=array('done'=>"YES");
        unset($_POST['nq']);
    }    
    unset($start);
    echo json_encode($data);

?>
Fijate compara con tu código. Espero te sirva.
  #5 (permalink)  
Antiguo 20/08/2012, 21:01
 
Fecha de Ingreso: agosto-2012
Ubicación: Bog
Mensajes: 8
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: necesito guía con envio de datos con $.ajax a php

Pues la verdad, como lo dije anteriormente opte por otro método para realizar este envío, lo raro es que en el server local, como lo tenía funcionaba de mil maravillas, el problema me surgio fue cuando lo subí al servidor web.
El código que MrH2 me genera el mismo problema en el server web, es por esto que decidide dejarlo como lo solucione y no darle más vueltas al asunto.
De todas maneras gracias.

Etiquetas: ajax, js, php
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 01:28.