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

problema con votación ajax+php

Estas en el tema de problema con votación ajax+php en el foro de Frameworks JS en Foros del Web. Hola amig@s!! Mi aplicación web tiene implementado un módulo de voto de noticias, para el cual utilizo ajax y php. Os cuento como ocurre todo ...
  #1 (permalink)  
Antiguo 06/01/2010, 07:00
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
problema con votación ajax+php

Hola amig@s!!
Mi aplicación web tiene implementado un módulo de voto de noticias, para el cual utilizo ajax y php. Os cuento como ocurre todo a ver si así podeis detectar el faio.
En primer lugar cargo la noticia y el módulo de votación(todo en php) que consiste en unas estrellitas que se iluminan con el evento :hover y que se pueden pinchar para darle una nota a la noticia. Cuando se pincha en una estrellita se mandan varios valores a una función javascript que se encuentra en el fichero votacion_ajax.js. Esta función recoge dichos valores y acaba iamando a su parte ajax de esta manera

Código:
$.ajax({
		type: "GET",
		url: "votacion_ajax.php",
		data: "action=votar&cod_usuario="+cod_usuario+"&cod_noticia="+cod_noticia+"&nota="+nota,
		success: function(msg){
			document.getElementById("txt_voto").innerHTML = "has votado correctamente";
		}, 
		error: function(xho){
			document.getElementById("txt_voto").innerHTML = "Error:"+xho.responseText;
		}
	});
Vale, hasta aquí todo parece correcto. Ahora 2 puntos a destacar:
1. El fichero votacion_ajax.js se encuentra dentro de una carpeta Scripts situada en la raíz de la aplicación, suponiéndose que si quiero iamar a votacion_ajax.php, que se encuentra en la misma raíz, debería usar como url "../votacion_ajax.php". Pues si hago eso se va al error y me muestra "Error: Missing".
2. No poniendo la url correctamente(o sí, no sé cómo lo tomará javascript) se me va al success y me muestra el mensajito de "has votado correctamente" pero no hace nada, no entra al fichero votacion_ajax.php. Y digo que no entra porque he probado mil maneras de que me muestre algo si consigue entrar y, aparte de no insertarme nada en bd, no modifica nada de lo que le digo que haga.

Creo que esto quiere significar que encuentra el archivo malamente, pero no puede acceder a él porque no se encuentra en la ruta especificada. Aunque si hago una copia de votacion_ajax.php dentro de la carpeta Scripts sigue sin hacer nada.

Muchas gracias por la aiuda.
  #2 (permalink)  
Antiguo 07/01/2010, 15:03
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: problema con votación ajax+php

Cuando tu llamas por ajax un fichero, la ruta del fichero debe ser tomada como si estuvieras en el fichero que invoca la funcion JS de ajax y no tomando como la referencia la ubicacion del script js,

es decir que tienes un directorio raiz y alli tienes un fichero index.php, el directorio scripts con el archivo ajax.js. y tambien en la raiz el directorio php con el archivo vota.php.

lo correcto es que desde ajax.js llames a votar.php asi: ./php/votar.php
lo incorrecto es: ../php/votar.php.

todo esto se debe a que cuando en el index.php dices:

<script language=javascript src="scripts/ajax.php"></script>, es como si el codigo este archivo estuviera hay pegadito, por lo tanto los archivos de invocan tomando como referencia la ubicacion del fichero que contiene la info.
  #3 (permalink)  
Antiguo 08/01/2010, 01:08
Avatar de aniMAYtions  
Fecha de Ingreso: diciembre-2007
Ubicación: Granada
Mensajes: 519
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: problema con votación ajax+php

Muchas gracias webness.
Finalmente lo conseguí poniendo el fichero votacion_ajax.js en la raíz, así me quito de problemas. Pero ia que sé que así se consigue lo probaré también como tú dices.
Un saludo!!

Etiquetas: ajax, ajax-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 15:28.