Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: vnak en 22 Mayo 2009, 16:02 pm



Título: Ajax not defined
Publicado por: vnak en 22 Mayo 2009, 16:02 pm
Quizás este tema no vaya aquí, pero cómo que está relacionado con PHP pues no sabía dónde ponerlo. La cuestión es que quiero que al darle un enlace del menú, en el div del centro (llamado "principal") aparezca un archivo.

no se que problema puede haber pero en enlace no me envía, miro a la consola de errores de firefox y me pone:

Ajax not defined, linia 2 del archivo funciones.js

el archivo en cuestión es este
Código:
function cargarseccion(principal,enviado) {
new Ajax.Request('secciones.php',{
method: 'post',
parameters:{principal:principal,enviado:enviado},
onCreate: function(){$('principal').innerHTML= 'Cargando,espera por favor...';},
onSuccess: function(transport){$('principal').innerHTML= transport.responseText;}
});
}


function nuevanoticia(titulo,contenido,autor,enviado,sección){
new Ajax.Request('secciones.php',{
method: 'post',
parameters: {titulo: titulo, contenido: contenido, autor: autor, enviado: enviado, sección:sección},
onCreate: function(){$('principal').innerHTML = 'Cargando, espera por favor...';},
onSuccess: function(transport){$('principal').innerHTML = transport.responseText;}
});
}


y en el Index.html el código es el siguiente:

Código:
<html>
<head>
<link rel="stylesheet" type="text/css" href="estilos.css">
<script type="text/javascript" src="./funciones.js"></script>
</head>
<body>
<div id="contenedor">
    <div id="cabecera">
       Portal Web
    </div>
    <div id="cuerpo">
       <div id="lateral">
          
        <ul id="navy">
             <center><h1>Continguts</h1></center>
             <li><a href="javascript:cargarseccion('nuevanoticia')"style="text decoration: none">Nueva Noticia</a></li>
             <li><a href="#">Vínculo 2</a>
             <li><a href="#">Otro enlace</a>
             <li><a href="#">Link chulo</a>
             <li><a href="#">Más enlaces</a>
             <li><a href="#">Otro último</a>
        </ul>
        
      
       </div>
       <div id="otrolado"><center><p>Holaaa me llamo alejandro fernandez tomas y tu?</p></center></div>
       <div id="principal">
          
       <?  include("Conexion.php");

    $seleccionar_noticias = mysql_query("SELECT * FROM noticias ORDER BY id DESC");

while($mostrar_noticias = mysql_fetch_array($seleccionar_noticias))
        { echo "<p>
                <center>".$mostrar_noticias['Titulo']."</center><br>
                <center>".$mostrar_noticias['Contenido']."</center><br>
                <center>escrito por".$mostrar_noticias['Autor']."</center><br>
                
                </p>";}

  





      ?>

  














       </div>
    </div>
    <div id="pie">
       © 2009 Alejandro Fernandez Tomas
    </div>
</div>
</body>
</html>


No se que error puede haber.
PD: en el archivo secciones.php simplemente hay un
if($principal=="nuevanoticia") { include_once("enviodenoticias.php"); }

Gracias de todos modos


Título: Re: Ajax not defined
Publicado por: Spider-Net en 22 Mayo 2009, 21:14 pm
Has leído el error. Ajax not defined. Según lo que has posteado es que no tienes definido el objeto ajax. Yo al menos no lo veo por ninguna parte, lo usas pero no lo declaras.

Usa una función que cree el objeto ajax
Código
  1. // Crea un objeto Ajax para trabajar de forma asíncrona con el servidor
  2. function objetoAjax(){
  3. var xmlhttp=false;
  4. try {
  5. xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  6. } catch (e) {
  7. try {
  8.   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  9. } catch (E) {
  10. xmlhttp = false;
  11.   }
  12. }
  13.  
  14. if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  15. xmlhttp = new XMLHttpRequest();
  16. }
  17. return xmlhttp;
  18. }

Y otra que lo llame:

Código
  1. function ejemplo_ajax(){
  2.        divResultado = document.getElementById('resultado');
  3. ajax=objetoAjax();
  4. ajax.open("GET", "ejemplo.php");
  5. divResultado.innerHTML = '<center><img src="imagenes/loading.gif"></center>';
  6. ajax.onreadystatechange=function() {
  7. if (ajax.readyState==4) {
  8. divResultado.innerHTML = ajax.responseText
  9. }
  10. }
  11. ajax.send(null)
  12. }