Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [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
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




jQuery nie ma nic do niedzialania w smarty. Jedno nie ma zadnego związku z drugim.
Jesli ci nie dziala, znaczy ze nie źle tego uzywasz i tyle. Pokaz kod to pogadamy
Go to the top of the page
+Quote Post
tomeknh
post
Post #3





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

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


Szefie, kod działa, wszystko się wykonuję tylko jest to trochę pokombinowane aby wszystko hulało. Dlatego pytam czy jest jakaś inna biblioteka Ajaxa, bardziej podchodząca pod Smarty
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
ednak nie za bardzo kumają się te dwa skrypty...
Tak napisales, wiec wywnioskowalem to co wywnioskowalem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Podtrzymuje zdanie: jquery nadaje sie do smartiego. Tak samo jak kazdy inny lib: prototype, i inne cuda.
Osobiscie nie widzialem nic, co by bylo napisane tak by zgadzalo sie ze smarty - nawet nie wiem o czym mowisz (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
matix
post
Post #5





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


@TomekNH:

jQuery to biblioteka Javascript, czyli wszystko wykonuje się po stronie klienta. Natomiast PHP, Ruby, Python i inne języki do programowania stron www włącznie wykonują się po stronie SERWERA.

Nie ma opcji, aby te dwie rzeczy ze soba kolizowały.

Pokaż kod, jak mówił @nospor wtedy powiemy ci co i jak.
Moim zdaniem coś jest nie tak z kodem PHP skoro jQuery nie działa - czasami się tak zdarza.
Go to the top of the page
+Quote Post
raf_79
post
Post #6





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

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: 25.08.2025 - 23:07