2012-04-26 28 views
11

Questo è il mio primo post qui e spero che qualcuno possa aiutarmi. Per la scorsa settimana ho lavorato a un mio progetto. Apparentemente, ho bloccato con l'ultima parte.
Quindi, in sostanza, ho una chat AJAX e quando invio una riga invio (usando un metodo Post) l'intera linea da analizzare (in un file chiamato analysis.php).
La linea di chat viene analizzata e trova la variabile di cui avevo bisogno eseguendo query su un database MySql.
Tutto ciò di cui ho bisogno ora è di avere questa variabile presa con JQuery-AJAX e metterla su un div nel mio file html (in modo che possa essere visualizzata a destra-sinistra-qualunque sia la chat).Ottieni la variabile dal file PHP usando JQuery/AJAX

Qui sono i miei file:
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> 

Quindi, io sono fondamentalmente cercando di ottenere il $ pubblicità dal file analysis.php (dopo l'intera analisi è fatto), e usando JQuery/AJAX passalo eventualmente al file ajax-chat.html. Qualsiasi aiuto è molto apprezzato. Ho cercato su Google tutto ma non ho trovato qualcosa che mi aiuti. Grazie in anticipo.

+0

Non è possibile inserire nulla nel file HTML: quando AJAX è in esecuzione, il file HTML non esiste, è stato inviato al browser, che avrà creato la propria struttura dati interna. Quello che puoi fare è eseguire qualche Javscript in quel browser che aggiornerà la struttura. Non parlo JQuery, quindi non posso consigliarti in modo specifico. –

+0

Grazie per la risposta ... Giusto per rendere più chiaro: diciamo che questa chat è qualcosa come il rilevatore dell'umore. Se la linea viene analizzata e si scopre che l'umore dell'utente è buono, allora l'annuncio $ avrà il valore "buono" e dovrebbe in qualche modo essere recuperato e inserito in un div in html e visualizzato all'utente. Se questo lo rende più chiaro. – harris21

+0

Sì, capisco cosa stai cercando di fare: questo è il tipo di problema che Ajax è stato inventato per risolvere. Stavo solo cercando di avvertirti di un errore concettuale che pensavo potessi fare (ma potrei sbagliarmi), che in qualche modo stai facendo qualcosa a quel file HTML. Non puoi: tutto ciò che puoi fare è modificare il DOM nel browser che è stato creato da quell'HTML. –

risposta

31

Se ho capito bene, è necessario utilizzare JSON. Ecco un esempio.

Nella tua scrittura PHP:

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

Quindi, se si sta utilizzando jQuery, basta scrivere:

$.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"); 
     } 
    }) 

E questo è tutto. Questo è JSON - è usato per inviare variabili, array, oggetti ecc. Tra server e utente. Maggiori informazioni qui: http://www.json.org/. :)

+0

Nota: PHP 5.2+ richiesto per 'json_encode ($ var)' O PHP 4.3+ con estensione PECL 1.2+. @ erik1001 è anche una buona idea collegare la documentazione per l'OP http://php.net/manual/en/function.json-encode.php – Ozzy

+0

Se, invece della segnalazione (risultato ['ajax']), noi usa $ ('# the_div_I_want'). html (risultato); , questa variabile sarà visualizzata in questo specifico html div del mio? – harris21

+0

Ovviamente lo farà. Puoi persino inviare HTML dal lato server e visualizzarlo dove vuoi. – suricactus