Skocz do zawartości

[Ajax + Smarty] Problem z połączenim


raf_79

Rekomendowane odpowiedzi

Witam

Mam problem z połączeniem Ajaxa i Smarty żeby to działało. Dopóki nie używam Smarty dane się pobierają po najechaniu na diva i wyświetlają, ale kiedy zaczynam przerabiać na smarty niestety gdzieś popełniam błąd i nie wiem gdzie, Mam nadzieje że tu znajdę przynajmniej wskazówkę co i jak :)

A teraz szczegóły.

plik index.php

<?php
session_start ();

require('d:/smarty/Smarty.class.php');
$s = new Smarty;
$s->template_dir = 'd:/serwisy/ajax/mysql_smarty/templates';
$s->config_dir = 'd:/serwisy/ajax/mysql_smarty/config';
$s->cache_dir = 'd:/serwisy/ajax/mysql_smarty/cache';
$s->compile_dir = 'd:/serwisy/ajax/mysql_smarty/templates_c';

$s = new Smarty;
//echo "S".$_SESSION ['wynik'][1];

$wynik = $_SESSION['wynik'];
$s->assign('wynik', $wynik);


$strona = $s->fetch('index.tpl');
echo $strona;
?>

plik index.tpl

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="https://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">
	Wynik: {$wynik}		
</div>

</body>
</html>

oraz plik dane.php

<?php
session_start ();
require_once ('../../lacz_obsl.php');

$wyn = mysql_query ("SELECT * FROM rodz_masz");

$wynik = array();
$i=0;
while ($wiersz = mysql_fetch_assoc ($wyn)){
array_push ($wynik, $wiersz ['NAZWA_RODZ']);
}
$_SESSION ['wynik'] = $wynik[1];
?>

Proszę o pomoc i z góry dzięki za nią

Pozdrawiam

Rafał

Odnośnik do komentarza
Udostępnij na innych stronach

Ale co tu ma działać ? Mechanizm AJAX polega na żądaniu / załadowaniu i wyświetleniu kodu HTML generowanego przez jakiś skrypt ewentualna jakiegos kodu HTML czasami JS zawartego w żądanym pliku. W twoim wypadku nie ma żadnych danych z pliku dane.php które można wyświetlić w "Ajaxie"!

Proponuję jeszcze raz poczytać o technologi AJAX może zrozumiesz swój błąd/problem...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo rozumiem jak to nie ma danych które można wyświetlić. Dane znajdują się w bazie danych z której on se to pobiera (pobiera sprawdziłem) Po najechaniu na diva wywoływana jest funcja JS z pliku ajax.js

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 = '';
}

i bez smarty wyświetla mi to w divie co się zwie content.

Więc chyba samo żądanie i wyświetlenie danych działa tylko te smarty nie chcą tego wyświetlić, albo ja czegoś jeszcze nie bardzo rozumiem.

Odnośnik do komentarza
Udostępnij na innych stronach

Nie bardzo rozumiem jak to nie ma danych które można wyświetlić.
No i o to chodzi, ze nie rozumiesz mechanizmu działania AJAX. Żądany za pomocą AJAX zasób o nazwie dane.php nie "zwraca" żadnych danych do przeglądarki przez co nie ma co wyświetlić w DIV'ie po żądaniu AJAX.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

oki, czyli jakbym dał [...]Tylko ze wtedy nie będzie mi się to wyświetlało przez smarty.
Kolego, programowanie to nie jest robienie zaprawy, że z jednego wora wrzucisz cement z drugiego piach wymieszasz i masz. Tak samo nie jest zgaduj zgadula. :)

Niestety nie masz wystarczającego pojęcia ani o AJAX ani o smarty, wiec zacznij naukę od podstaw tych dwóch zagadnień oddzielnie, a może potem uda ci się zastosować to w aplikacji.

Tylko tyle mogę pomóc.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Pomogłem i to bardzo dużo, bo jawnie powiedziałem, że zabierasz się do tego z zawiązanymi oczami. Poza tym ja się za ciebie nie nauczę implementacji AJAX i zastosowania archaicznego system szablonów smarty.

Ty ja widać oczekujesz "rozwiązań tacowych", ale niestety ja takich ci nie dostarczę i nie tędy droga...

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

jak ktoś się ciebie pyta o drogę to mu mówisz |jedzie pan nie tędy ale tam jest kiosk z mapami "?

jak już napisałem dzięki poczytam i się wcześnie czy później to zagra.

a tak na marginesie jaki jest nie archaiczny system szablonów ?? tylko nie pisz poczytaj bo każdy na tym forum odpowie inaczej, a przeważnie zachwali tego czego używa ;)

Odnośnik do komentarza
Udostępnij na innych stronach

a tak na marginesie jaki jest nie archaiczny system szablonów ?? t
Sorry, ze tak piszę, ale takie są fakty. Musisz przejść na wyższy poziom w kwestii PHP żeby zrozumieć o czym mowa.

HTTP 200 usługi IT -> Dariusz Janicki | Realizacja serwisów www oraz oprogramowania w PHP / C# / Golang / Node.js / MySQL/ Laravel
Komory normobaryczne - normobaria.tech Wykonawca montażu i instalacji komory normobarii

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności