2012-04-26 66 views
11

Đây là bài đăng đầu tiên của tôi ở đây và tôi hy vọng rằng ai đó sẽ có thể giúp tôi. Trong tuần qua tôi đã làm việc cho một dự án của tôi. Rõ ràng, tôi đã bị mắc kẹt với phần cuối cùng.
Vì vậy, về cơ bản, tôi có một cuộc trò chuyện AJAX và khi tôi gửi một dòng tôi gửi (bằng cách sử dụng một phương pháp Post) toàn bộ dòng được phân tích (đến một tập tin có tên analysis.php).
Dòng trò chuyện đang được phân tích và tìm biến tôi cần bằng cách thực hiện truy vấn trên Cơ sở dữ liệu MySql.
Tất cả những gì tôi cần bây giờ, là có biến này được thực hiện với JQuery-AJAX và đặt nó trên một div trong tệp html của tôi (vì vậy nó có thể được hiển thị ở bên phải-bất kỳ cuộc trò chuyện nào).Lấy biến từ tệp PHP bằng cách sử dụng JQuery/AJAX

Đây là My files:
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> 

So Tôi am bản trying để lấy $ advert từ tệp analytics.php (sau khi phân tích toàn bộ được thực hiện), và bằng cách sử dụng JQuery/AJAX, hãy chuyển nó đến tập tin ajax-chat.html. Bất kỳ trợ giúp nào thực sự được đánh giá cao. Tôi đã googled tất cả mọi thứ nhưng không tìm thấy một cái gì đó để giúp tôi. Cảm ơn trước.

+0

Bạn không thể đặt bất kỳ thứ gì vào tệp HTML của mình: vào lúc AJAX đang chạy, tệp HTML của bạn không tồn tại, nó đã được gửi tới trình duyệt, sẽ tạo cấu trúc dữ liệu nội bộ của riêng nó. Những gì bạn có thể làm là chạy một số Javscript trong trình duyệt đó sẽ cập nhật cấu trúc. Tôi không nói JQuery, vì vậy tôi không thể tư vấn cụ thể cho bạn. –

+0

Cảm ơn bạn đã trả lời ... Chỉ để làm cho nó rõ ràng hơn: Hãy nói rằng trò chuyện này là một cái gì đó giống như máy dò tâm trạng. Nếu dòng được phân tích và phát hiện ra rằng tâm trạng của người dùng là tốt, thì quảng cáo $ sẽ có giá trị "tốt" và nó bằng cách nào đó được truy xuất và đưa vào div trong html và hiển thị cho người dùng. Nếu điều đó làm cho nó rõ ràng hơn. – harris21

+0

Có, tôi hiểu những gì bạn đang cố gắng làm: đó là loại vấn đề mà Ajax đã được phát minh để giải quyết. Tôi chỉ đang cố gắng cảnh báo bạn về một sai lầm khái niệm mà tôi nghĩ bạn có thể đang làm (nhưng tôi có thể sai), rằng bạn đang làm một cái gì đó cho tệp HTML đó. Bạn không thể: tất cả những gì bạn có thể làm là sửa đổi DOM trong trình duyệt được tạo từ HTML đó. –

Trả lời

31

Nếu tôi hiểu đúng, bạn cần sử dụng JSON. Đây là một mẫu.

Trong PHP ghi của bạn:

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

Sau đó, nếu bạn đang sử dụng jQuery, chỉ cần viết:

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

Và đó là tất cả. Đây là JSON - nó được sử dụng để gửi các biến, mảng, đối tượng, vv giữa máy chủ và người dùng. Thông tin thêm tại đây: http://www.json.org/. :)

+0

Lưu ý: Yêu cầu PHP 5.2+ cho 'json_encode ($ var)' HOẶC PHP 4.3+ với phần mở rộng PECL 1.2+. @ erik1001 cũng là một ý tưởng tốt để liên kết tài liệu cho OP http://php.net/manual/en/function.json-encode.php – Ozzy

+0

Nếu, thay vì cảnh báo (kết quả ['ajax']), chúng tôi sử dụng $ ('# the_div_I_want'). html (kết quả); , biến này sẽ được hiển thị trong div html cụ thể của tôi? – harris21

+0

Tất nhiên là như vậy. Bạn thậm chí có thể gửi HTML từ serverside và hiển thị nó ở nơi bạn muốn. – suricactus

Các vấn đề liên quan