2012-04-26 17 views
11

Bu benim ilk gönderiim ve umarım birisi bana yardım edebilir. Geçen hafta için benim bir projem üzerinde çalışıyorum. Görünüşe göre, son kısımda sıkışmıştım.
Temel olarak, bir AJAX sohbetim var ve bir satır gönderdiğimde (analiz metodu kullanarak) analiz edilecek tüm satırı (analiz.php adlı bir dosyaya) gönderiyorum.
Sohbet hattı analiz ediliyor ve bir MySql Veritabanında sorgulamalar yaparak ihtiyacım olan değişkeni buluyor.
Tek ihtiyacım olan şey, bu değişkenin JQuery-AJAX ile alınmış olması ve html dosyasımdaki bir bölüme yazılmasıdır (bu yüzden sohbetten sağ-solda gösterilebilir). İşte JQuery/AJAX kullanarak PHP dosyasından değişken alın

benim dosyalar şunlardır:
analysis.php

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

ajax-chat.html Yani

<!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> 

, temelde almaya çalışıyorum analysis.php dosyasından (tüm analizden sonra) $ advert yapılır) ve JQuery/AJAX kullanarak sonunda ajax-chat.html dosyasına iletir. Herhangi bir yardım gerçekten takdir edilmektedir. Her şeye baktım ama bana yardım edecek bir şey bulamadım. Şimdiden teşekkürler.

+0

HTML dosyanıza herhangi bir şey koyamazsınız: AJAX çalışırken, HTML dosyanız mevcut değildir, tarayıcıya gönderilmiştir, bu da kendi dahili veri yapısını oluşturmuş olacaktır. Yapabilecekleriniz, bu tarayıcıda yapıyı güncelleyebilecek bir Javscript çalıştırmaktır. JQuery'yi bilmiyorum, bu yüzden size özel olarak tavsiyede bulunamam. –

+0

Cevabınız için teşekkür ederiz ... Sadece daha açık hale getirmek için: Bu sohbetin ruh hali dedektörü gibi bir şey olduğunu varsayalım. Çizgi analiz edildiyse ve kullanıcının ruh halinin iyi olduğunu tespit ederse, $ reklamı "iyi" değerine sahip olacak ve bir şekilde html'de bir div'a yerleştirilecek ve kullanıcıya gösterilecektir. Eğer bu daha net yaparsa. – harris21

+0

Evet, yapmaya çalıştığınız şeyi anlıyorum: Bu, Ajax'ın çözmek için icat ettiği sorun türüdür. Yaptığını düşündüğüm bir kavramsal hata hakkında sizi uyarmaya çalışıyordum (ama yanılıyor olabilirim), bir şekilde bu HTML dosyasına bir şeyler yapıyorsunuz. Yapamazsınız: Tek yapmanız gereken, o HTML’den oluşturulan tarayıcıdaki DOM’ı değiştirmektir. –

cevap

31

Doğru anlıyorsam, JSON kullanmanız gerekir. İşte bir örnek. PHP yazma olarak

:

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

Ve hepsi bu: jQuery kullanıyorsanız

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

, sadece yazın. Bu JSON - sunucu ve kullanıcı arasında değişkenler, diziler, nesneler vb. Göndermek için kullanılır. Daha fazla bilgi burada: http://www.json.org/. :)

+0

Not: PHP 5.2+ için json_encode ($ var) 'VEYA PHP 4.3+ PECL 1.2+ uzantılıdır. @ erik1001 aynı zamanda OP http://php.net/manual/en/function.json-encode.php – Ozzy

+0

dokümantasyonuna bağlantı vermek için iyi bir fikir. Uyarı yerine (sonuç ['ajax']) $ ('# the_div_I_want') kullanın. html (sonuç); Bu değişken, bu özel html divimde görüntülenecek mi? – harris21

+0

Tabii ki olacak. Hatta sunuculardan HTML gönderebilir ve istediğiniz yerde görüntüleyebilirsiniz. – suricactus