Ciao ragazzi, vorrei sapere se qualcuno riesce a darmi una mano.
ho una chat in javascript, che forse qualcuno conosce già. Il suo nome è JQuery. composta da una pagina HTML con la visualizzazione dei messaggi in chat con subito sotto il form di invio mex e gli script in javascript.
codice:
<body>
<center>
<div id="daddy-shoutbox">
<div id="daddy-shoutbox-list"></div>
<form id="daddy-shoutbox-form" action="demos/jquery-shoutbox/daddy-shoutbox.php?action=add" method="post">
Nick: <input type="text" name="nickname" /> Say: <input type="text" name="message" />
<input type="submit" value="Submit" />
<span id="daddy-shoutbox-response"></span>
</form>
</div>
</center>
<script type="text/javascript">
var count = 0;
var files = 'demos/jquery-shoutbox/';
var lastTime = 0;
function prepare(response) {
var d = new Date();
count++;
d.setTime(response.time*1000);
var mytime = d.getHours()+':'+d.getMinutes()+':'+d.getSeconds();
var string = '<div class="shoutbox-list" id="list-'+count+'">'
+ '<span class="shoutbox-list-time">'+mytime+'</span>'
+ '<span class="shoutbox-list-nick">'+response.nickname+':</span>'
+ '<span class="shoutbox-list-message">'+response.message+'</span>'
+'</div>';
return string;
}
function success(response, status) {
if(status == 'success') {
lastTime = response.time;
$('#daddy-shoutbox-response').html('[img]'+files+'images/accept.png[/img]');
$('#daddy-shoutbox-list').append(prepare(response));
$('input[@name=message]').attr('value', '').focus();
$('#list-'+count).fadeIn('slow');
timeoutID = setTimeout(refresh, 3000);
}
}
function validate(formData, jqForm, options) {
for (var i=0; i < formData.length; i++) {
if (!formData[i].value) {
alert('Please fill in all the fields');
$('input[@name='+formData[i].name+']').css('background', 'red');
return false;
}
}
$('#daddy-shoutbox-response').html('[img]'+files+'images/loader.gif[/img]');
clearTimeout(timeoutID);
}
function refresh() {
$.getJSON(files+"daddy-shoutbox.php?action=view&time="+lastTime, function(json) {
if(json.length) {
for(i=0; i < json.length; i++) {
$('#daddy-shoutbox-list').append(prepare(json[i]));
$('#list-' + count).fadeIn('slow');
}
var j = i-1;
lastTime = json[j].time;
}
//alert(lastTime);
});
timeoutID = setTimeout(refresh, 3000);
}
// wait for the DOM to be loaded
$(document).ready(function() {
var options = {
dataType: 'json',
beforeSubmit: validate,
success: success
};
$('#daddy-shoutbox-form').ajaxForm(options);
timeoutID = setTimeout(refresh, 100);
});
</script>
</body>
il form non fa altro che inviare ad un file php, il quale scriverà su un .txt il messaggio e manda il responso positivo a questa pagina HTML aggiungendo un div con il nuovo commento.
quello che io vorrei è utilizzare questa chat come una shoutbox, quindi inviare un messaggio attraverso il form e visualizzare solo l'ultimo inviato. Quindi dallo script in php ho corretto la cosa e adesso svuota il txt prima di inserire il record. ma nella pagina HTML il div viene sempre aggiunto e quindi visualizza uno sotto l'altro i messaggi.
potete aiutarmi? qualcuno conosce qualche altro script in javascript? grazie.