Skrypt ajax:
<script type='text/javascript'> $.ajax({ type: 'GET', data: { a: a}, success: function(data){ return_data_ajaxss = data; }, async: false }); return return_data_ajaxss; } var seconds = 30000; var refresh = setInterval(function(){ $('#talker_ogolny').html(ajaxss); }, seconds); function odswiezaj(){ $(function(){ $('#talker_ogolny').html(ajaxss); }); } </script> <script type='text/javascript'> ajaxss('', 'chat_wpisy'); </script>
main.tpl
<h2>Chat</h2> </div> <div class="wrapper"> <div id="chat"> <form action='?action=main' method='post' name='chat' accept-charset='utf-8'> <div> <input type='text' name='wpis_message' value='' size='78' /> <input type='submit' name='nowy_wpis' value='Wyślij'> <button onclick=\"odswiezaj()\" tabindex='3'>Odśwież</button> </div> {literal}<script type='text/javascript'>odswiezaj();</script>{/literal} </form> <div style='overflow-x:hidden;overflow-y:scroll;height:600px;' id='talker_ogolny'> </div> {include file = 'bottom.tpl'}
main.php
<?php require_once('configs/config.php') ; if($_POST['nowy_wpis']) { $stmt = $pdo->prepare("INSERT INTO chat (sender, text) VALUES (?, ?)"); $stmt->bindParam(1, $player->user); $stmt->bindParam(2, $_POST['wpis_message']); $stmt -> execute(); } $temp->display('main.tpl'); ?>
chat_wpisy.tpl
{foreach from=$x item=v} <i>{$v.sender}</i> <b>{$v.text}</b> <br /> <br /> {/foreach}
chat_wpisy.php
<?php $sql = "SELECT * FROM chat ORDER BY id DESC LIMIT 10"; foreach($q as $r){ $x[] = $r; } $temp->assign("x", $x); $temp->display('chat_wpisy.tpl'); ?>
Editt:// Problem rozwiązany, lecz mam jeszcze jedno pytanie. Testuje skrypty na webservie, i dla testów patrze na dwóch kompach czy mi się odświeża automatycznie, na moim wszystko jest ok, tzn gdy na drugim coć napiszę - u mnie to wyświetli, leczna drugim kompie odświeżanie strony trwa bardzo długo, i żadnych tekstów już nie wyświetla, lecz na innych już podstronach wczytywanie idzie normalnie. Podejrzewam że jest to wina ajax, tylko nie mam pojęcia gdzie dokładnie leży ten problem, mógłby ktoś mnie jakoś na kierowąć?