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

Ayuda porfavor!!

Estas en el tema de Ayuda porfavor!! en el foro de Frameworks JS en Foros del Web. Hola.. les cuento.. yo tengo un sistema de mensajeria interna.. hecho en PHP,en el cuál,los usuarios registrados podrán mandarse y recivir mensajes comosi fuera un ...
  #1 (permalink)  
Antiguo 06/09/2005, 17:59
Saldu
Invitado
 
Mensajes: n/a
Puntos:
Ayuda porfavor!!

Hola.. les cuento.. yo tengo un sistema de mensajeria interna.. hecho en PHP,en el cuál,los usuarios registrados podrán mandarse y recivir mensajes comosi fuera un sistema de correos electronicos..Yo lo que necesito.. es que mientras el usuario esté haciendo cualquier actividad de la pagina.. ya sea,leyendo un articulo,o navegando por la pagina.. yo lo que necesito.. es que ni bien,el usuario reciva un mensaje,que le salte un alert diciendole que recivió un mensaje nuevo.. me explico??
Eso se puede hacer? o es mucho lio? a mi me dijeron que eso se podía hacer con Ajax, es por eso que he venido a dejar mi problema en este foro,y no en el de PHP.Pues, si pueden ayudarme,sería de muchísima utilidad,queridos webmasters de foros del web,si podrían responderme este topic. Muchas Gracias,
Saldu
  #2 (permalink)  
Antiguo 15/09/2005, 04:47
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 20 años, 6 meses
Puntos: 2
Creo que el problema lo púedes resolver teniendo una tabla en una DB donde tengas los mensajes (con un campo bit de nuevo, o algo asi). Luego del lado del cliente tendras que usar un timer en JavaScript con un llamado a una funcion para enviar un Get a una pagina php que te consulte si existen mensajes y luego recuperar la respuesta para hacer o no el alert. Todo esto ultimo lo puedes hacer con la info de AJAX que hay en este foro.

Espero que te sirva, suerte!
__________________
Keep it simple and keep it fast.
  #3 (permalink)  
Antiguo 16/09/2005, 04:26
Saldu
Invitado
 
Mensajes: n/a
Puntos:
CREATE TABLE `mensajes` (

`msgid` int(9) NOT NULL auto_increment,

`de` varchar(255) NOT NULL default '',

`para` varchar(255) NOT NULL default '',

`asunto` varchar(255) NOT NULL default '',

`mensaje` longtext NOT NULL,

`fecha` varchar(255) NOT NULL default

'', `leido` int(10) NOT NULL default '0',
PRIMARY KEY (`msgid`)) TYPE=MyISAM


Esa es mi tabla de mensajes... cómo diantres hago para que esto funcione?? xfas...diganme más específicamente,si quieren pongo el sistema de mnensajes
  #4 (permalink)  
Antiguo 16/09/2005, 06:52
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 20 años, 6 meses
Puntos: 2
En realidad para que funcione como ya te comente antes debes hacer un monton de cosas. Detallarlas llevaria mucho tiempo.... has intentado hacer algo de lo que te comente antes, lo intentaste, lo entendiste ?
__________________
Keep it simple and keep it fast.
  #5 (permalink)  
Antiguo 07/10/2005, 06:12
Saldu
Invitado
 
Mensajes: n/a
Puntos:
A decir verdad hice esto: y no me anda..me gustaría saber porqué... osea.. ustedes que saben,denle una ojeada:
Informante.php:

<?php
session_start();
//require_once('../conexion.php');
$_a=mysql_connect("localhost","root","");
mysql_select_db("Tryman",$_a);
if (!isset($_SESSION["codigoUsuario"]) || $_SESSION["codigoUsuario"] != 'YES') {
$body="no";
}
else
{
$_nick=$_SESSION['codigoUsuario'];
$i = 1;
$query = mysql_query ("SELECT * FROM saldu_mensajes WHERE para=".$_nick." and leido=0");
$_valor=(mysql_num_rows($query)==0)?false:true;
if ($_valor==true) {
$body="si";
mysql_query ("UPDATE saldu_mensajes SET leido=1 WHERE para=".$_nick);
}
else
{
$body="no";
}
}
echo $body;
?>



Bueno...eso sería la parte PHP,pero ahora en ajax hize esto:

INFORMANTE.JS

function objetus()
{
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp
}
function activar_informante()
{
aaa=setInterval("informante();",10000);
}
function informante()
{
_objetus=objetus()
_objetus.open("GET","informante.php",true);
_objetus.onreadystatechange=function() {
if (_objetus.readyState==4)
{
if(_objetus.status==200)
{
if(_objetus.responseText=="si")
{
window.alert("Tienes un mensaje nuevo");
}
}
}
}
_objetus.send(null);
}



Pero a todo esto,yo lo llamo desde una pagina normal,y en esa pagina yo hago:

<script language="JavaScript" src="informante.js"></script>
</head>
<body onload="activar_informante();">

y supuestamente esto tendría que andar..pero no sé porqué razón no funciona... qué estoy haciendo mal? Grax
  #6 (permalink)  
Antiguo 10/10/2005, 08:28
Avatar de MaBoRaK  
Fecha de Ingreso: abril-2003
Ubicación: La Paz - Bolivia
Mensajes: 2.003
Antigüedad: 21 años
Puntos: 35
loading.............


Te hice el código TE LO DIJE y funciona, solo nose como tratas a tus tablas.


entra en modo depuracion, manda un mensaje a algun usuario ycon la misma sesion entra a : informante.php ahi ve si sale un SI o un NO si no sale nada es que falla algo con tus tablas, o el modo en que procesas el mensaje enviado o recibido.




connection closed.
__________________

Maborak Technologies
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 11:04.