Kombinuje jak można by stworzyć shoutboxa w AJAX i mam pewien problem. Ponieważ wyświetla mi formularz z przyciskiem oraz polem tekstowym 2 razy.
Kod mam następujący:
<html> <head> <script language=javascript> var object = false; if (window.XMLHttpRequest) object = new XMLHttpRequest(); else if (window.ActiveXObject) object = new ActiveXObject("Microsoft.XMLHTTP"); function getData(dataSource, divID) { if (object.readyState==4 || object.readyState==0) { var obj = document.getElementById(divID); object.open("GET", dataSource); object.onreadystatechange = function() { if (object.readyState == 4 && object.status == 200) obj.innerHTML= object.responseText; } object.send(null); } } function odswiezaj() { getData('shoutbox.php','tekst'); setTimeout("odswiezaj()", 1000); } </script> </head> <body bgcolor="green"> <? try { $db = new PDO('mysql:host=localhost;dbname=czat', 'root', ''); $db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pytanie = $db -> query('SELECT * FROM wiadomosci ORDER BY id DESC'); while($row = $pytanie -> fetch()){ echo'<table border="1"> <tr><td><font size="1"><b>Napisal: </b>'.$row['autor'].'</font></td></tr> <tr><td width="150"><font size="2">'.$row['tresc'].'</font></td></tr> <tr><td><p align="right"><font size="1"><b>Data:</b>'.$row['data'].'</font></p></td></tr> </table>'; } echo' <form method="post" action="shoutbox.php" enctype="multipart/form-data"> <input type="text" name="tekst" size="28" style="font-size: 7pt; font-family: Tahoma; font-weight: bold" /><br> <input type="submit" name="submit" value="Wyslij" style="font-size: 6pt; font-family: Tahoma; font-weight: bold" /> </form>'; } catch(PDOException $e) { } ?> <script language=javascript> odswiezaj(); </script> </body> </html>
Co mozna zrobić by nie pokazywało podwójnie formularza?