Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ajax] Połączenie Ajax+Smarty
tomeknh
post
Post #1





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 2.12.2007

Ostrzeżenie: (0%)
-----


witam,

już parę godzin kombinuję jak najlepiej połączyć Ajax + Smarty. próbowałem na jQuery, które znam i Smarty które też znam :-), jednak nie za bardzo kumają się te dwa skrypty...

i tutaj pytanie, jaką bibliotekę Ajaxa do Smarty polecacie tak aby wszystko elegancko hulało? czytałem o module do Smarty ale mało tam funkcji...chciałbym coś a'la jQuery

jeśli ktoś zna jakieś dobre artykuły na ten temat czy coś również chętnie zobaczę


domyślam się, że najlepiej gdyby biblioteka ajaxa zwracała wartości w postaci zmiennej, wtedy prosto już przekazać wszystko do Smarty

pozdrawiam i dziękuje Tomek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
raf_79
post
Post #2





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 3.03.2005

Ostrzeżenie: (0%)
-----


Witam

Podepnę się pod tego wątka.
Zaczynam dopiero swą przygodę z ajaxem poczytałem i jest sporo przykładów o pobieraniu danych z plików mało jednak co robić z bazą danych. Doszedłem jednak jak to wyświetlać i fajnie działa. Teraz chce dodać do tego smarty.
Ale niestety nie wiem za bardzo jak się do tego zabrać.

Mam takie pliczki
index.php
  1. <?php
  2. require(':/smarty/Smarty.class.php');
  3. $s = new Smarty;
  4. $s->template_dir = ':/serwisy/ajax/mysql_smarty/templates';
  5. $s->config_dir = ':/serwisy/ajax/mysql_smarty/config';
  6. $s->cache_dir = ':/serwisy/ajax/mysql_smarty/cache';
  7. $s->compile_dir = ':/serwisy/ajax/mysql_smarty/templates_c';
  8.  
  9. $s = new Smarty;
  10. $s->assign('wynik', $wynik);
  11.  
  12. $strona = $s->fetch('index.tpl');
  13. echo $strona;
  14. ?>


dane.php
  1. <?php
  2. require_once ('../../lacz_obsl.php');
  3.    
  4. $wyn = mysql_query ("SELECT * FROM rodz_masz");
  5.  
  6. $wynik = "<table><tr></td><tr>";
  7.  
  8. while ($wiersz = mysql_fetch_assoc ($wyn))
  9.    $wynik .= "<tr><td>{$wiersz ['NAZWA_RODZ']}</td></tr>";
  10. $wynik .= "</table>";
  11.  
  12. echo $wynik;
  13. ?>


ajax.js
Kod
var r;

function odbierzDane()
{
    if (r.readyState == 4 && r.status == 200) {
        document.getElementById('content').innerHTML = r.responseText;
    }
}


function podajDane()
{
    if (r = getXMLHttpRequest()) {
        r.open('GET', 'dane.php', true);
        r.onreadystatechange = odbierzDane;
        r.send(null);    
    }
}


function wyczyscDane()
{
    document.getElementById('content').innerHTML = '';
}

index.tpl
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link rel="stylesheet" type="text/css" href="style/style.css" />
    <script type="text/javascript" src="xmlhttprequest.js"></script>
    <script type="text/javascript" src="ajax.js"></script>    
    </head>
<body>
    <div id="pojemnik" onmouseover="podajDane();" onmouseout="wyczyscDane();">
        Rodzaje maszyn
    </div>
    <div id="content"></div>
    </div>

</body>
</html>


Wiem że na pewno inaczej muszę zrobić plik dane.php znaczy do zmiennej wynik przypisać tylko dane bez html ale jak to dalej przesłać ?

Z góry dzięki za odpowiedź i pomoc

Pozdrawiam
Rafał
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 11.10.2025 - 15:39