2012-04-26 84 views
11

這是我第一篇文章,希望有人能幫助我。 過去一週,我一直在研究我的一個項目。顯然,我堅持最後一部分。
所以基本上,我有一個AJAX聊天,當我提交一個行時,我發送(使用Post方法)整個要分析的行(到一個名爲analysis.php的文件)。
正在分析聊天行,並通過在MySql數據庫上執行查詢來查找我需要的變量。
我現在需要的是將此變量與JQuery-AJAX一起使用,並將其放在我的html文件中的一個div上(因此它可以顯示在左右任何聊天中)。使用jQuery/AJAX從PHP文件獲取變量

這裏是我的文件:
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> 

所以,我基本上是試圖讓來自analysis.php文件的$ advert(在整個分析之後完成),並通過使用JQuery/AJAX最終傳遞給ajax-chat.html文件。 任何幫助真的很感激。我搜索了一切,但沒有找到可以幫助我的東西。 在此先感謝。

+0

您不能在HTML文件中放入任何內容:到AJAX運行時,您的HTML文件不存在,它已發送到瀏覽器,該瀏覽器將創建自己的內部數據結構。你可以做的是在該瀏覽器中運行一些Javscript,它將更新結構。我不會說JQuery,所以我不能專門給你提供建議。 – 2012-04-26 21:17:19

+0

謝謝你的回答...只是爲了讓它更清楚:假設這個聊天就像情緒檢測器一樣。如果分析線路並發現用戶的情緒良好,那麼$ advert將具有「良好」的值,並且應該以某種方式檢索並將其放入html中的div中並顯示給用戶。如果這使得它更清楚。 – harris21 2012-04-26 22:13:35

+0

是的,我明白你在做什麼:這就是Ajax發明要解決的問題。我只是想告訴你我認爲你可能會犯的一個概念性錯誤(但我可能是錯的),你對某個HTML文件做了某些事情。你不能:你所能做的就是修改從該HTML創建的瀏覽器中的DOM。 – 2012-04-27 14:54:28

回答

31

如果我理解正確,您需要使用JSON。這是一個示例。

在你的PHP寫:

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

然後,如果你正在使用jQuery,只寫:

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

而這一切。這是JSON--它用於在服務器和用戶之間發送變量,數組,對象等。更多信息:http://www.json.org/。 :)

+0

注意:'json_encode($ var)'或者PHP 4.3+需要PHP 5.2+以及PECL 1.2+擴展。 @ erik1001它也是一個好主意,鏈接OP的文檔http://php.net/manual/en/function.json-encode.php – Ozzy 2012-04-26 22:49:43

+0

如果,而不是警報(結果['ajax']),我們使用$('#the_div_I_want')。html(result); ,這個變量會顯示在我的這個特定的html div中嗎? – harris21 2012-04-26 23:51:48

+0

當然會。您甚至可以從服務器端發送HTML並將其顯示在您想要的位置。 – suricactus 2012-04-27 12:25:57