2012-04-26 11 views
11

Esta es mi primera publicación aquí y espero que alguien pueda ayudarme. Durante la última semana he estado trabajando en un proyecto mío. Aparentemente, me he quedado con la última parte.
Entonces, básicamente, tengo un chat AJAX y cuando envío una línea, envío (utilizando un método Post) toda la línea a analizar (a un archivo llamado analysis.php).
La línea de chat se está analizando y encuentra la variable que necesitaba haciendo consultas en una base de datos MySql.
Todo lo que necesito ahora es tomar esta variable con JQuery-AJAX y ponerla en un div en mi archivo html (para que pueda mostrarse a la derecha, a la izquierda, lo que sea del chat).Obtiene la variable del archivo PHP usando JQuery/AJAX

Éstos son mis archivos:
analysis.php

<?php 
$advert = $row[adverts]; 
?> 

ajax-chat.html

<!DOCTYPE html> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>AJAX Chat</title> 

<link rel="stylesheet" type="text/css" href="js/jScrollPane/jScrollPane.css" /> 
<link rel="stylesheet" type="text/css" href="css/page.css" /> 
<link rel="stylesheet" type="text/css" href="css/chat.css" /> 

</head> 

<body> 

<div id="chatContainer"> 

    <div id="chatTopBar" class="rounded"></div> 
    <div id="chatLineHolder"></div> 

    <div id="chatUsers" class="rounded"></div> 
    <div id="chatBottomBar" class="rounded"> 
     <div class="tip"></div> 

     <form id="loginForm" method="post" action=""> 
      <input id="name" name="name" class="rounded" maxlength="16" /> 
      <input id="email" name="email" class="rounded" /> 
      <input type="submit" class="blueButton" value="Login" /> 
     </form> 

     <form id="submitForm" method="post" action=""> 
      <input id="chatText" name="chatText" class="rounded" maxlength="255" /> 
      <input type="submit" class="blueButton" value="Submit" /> 
     </form> 

    </div> 

</div> 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
<script src="js/jScrollPane/jquery.mousewheel.js"></script> 
<script src="js/jScrollPane/jScrollPane.min.js"></script> 
<script src="js/script.js"></script> 
</body> 
</html> 

lo tanto, estoy básicamente tratando de obtener la $ anuncio del archivo analysis.php (después de todo el análisis está hecho), y al usar JQuery/AJAX, páselo finalmente al archivo ajax-chat.html. Cualquier ayuda es realmente apreciada. He buscado en Google todo pero no he encontrado algo para ayudarme. Gracias de antemano.

+0

No puede poner nada en su archivo HTML: cuando AJAX se está ejecutando, su archivo HTML no existe, se ha enviado al navegador, que habrá creado su propia estructura de datos interna. Lo que puedes hacer es ejecutar algunos Javscript en ese navegador que actualizará la estructura. No hablo JQuery, así que no puedo aconsejarte específicamente. –

+0

Gracias por su respuesta ... Solo para dejarlo más claro: digamos que este chat es algo así como el detector de estado de ánimo. Si se analiza la línea y se descubre que el estado de ánimo del usuario es bueno, entonces el $ advert tendrá el valor "bueno" y de alguna manera debería recuperarse y colocarse en un div en el html y mostrarse al usuario. Si eso lo hace más claro. – harris21

+0

Sí, entiendo lo que estás tratando de hacer: ese es el tipo de problema que Ajax fue inventado para resolver. Solo estaba tratando de advertirte de un error conceptual que pensé que estarías haciendo (pero puedo estar equivocado), de que de alguna manera estarías haciendo algo con ese archivo HTML. No se puede: todo lo que se puede hacer es modificar el DOM en el navegador que se creó a partir de ese HTML. –

Respuesta

31

Si entiendo bien, necesita usar JSON. Aquí hay una muestra.

En su PHP escritura:

<?php 
// filename: myAjaxFile.php 
// some PHP 
    $advert = array(
     'ajax' => 'Hello world!', 
     'advert' => $row['adverts'], 
    ); 
    echo json_encode($advert); 
?> 

Entonces, si está utilizando jQuery, acaba de escribir:

$.ajax({ 
     url : 'myAjaxFile.php', 
     type : 'POST', 
     data : data, 
     dataType : 'json', 
     success : function (result) { 
      alert(result['ajax']); // "Hello world!" alerted 
      console.log(result['advert']) // The value of your php $row['adverts'] will be displayed 
     }, 
     error : function() { 
      alert("error"); 
     } 
    }) 

Y eso es todo. Esto es JSON: se usa para enviar variables, matrices, objetos, etc. entre el servidor y el usuario. Más información aquí: http://www.json.org/. :)

+0

Nota: Se requiere PHP 5.2+ para 'json_encode ($ var)' O PHP 4.3+ con extensión PECL 1.2+. @ erik1001 también es una buena idea vincular la documentación para el OP http://php.net/manual/en/function.json-encode.php – Ozzy

+0

Si, en lugar de la alerta (resultado ['ajax']), use $ ('# the_div_I_want'). html (resultado); , ¿se mostrará esta variable en este div html específico mío? – harris21

+0

Por supuesto que lo hará. Incluso puede enviar HTML desde el servidor y mostrarlo donde desee. – suricactus

Cuestiones relacionadas