Visualizzazione risultati 1 fino 3 di 3

Discussione: Shoutbox Jquery

  1. #1
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito Shoutbox Jquery

    Ciao a tutti. Ho scaricato una shoutbox/tagboard da inserire in un forum phpBB3. Premetto che non ho ben presente come funzioni Jquery, per questo vi chiedo aiuto.

    Ci sono due problemi:
    - il primo è che, nonostante i messaggi vengano inseriti correttamente nella base dati, mi stampa "Database connection problem!";
    - il secondo è il fatto che, dopo aver inserito una quindicina di messaggi, dà errore e non fa né inserire nuovi messaggi né vedere quelli vecchi.

    Questo è il codice che genera la tabella:
    Codice:
    CREATE TABLE IF NOT EXISTS `shouts` (
    		`id` int(11) NOT NULL auto_increment,
    		`nickname` varchar(50) NOT NULL,
    		`message` varchar(255) NOT NULL,
    		`date_added` datetime NOT NULL,
    		PRIMARY KEY  (`id`)
    		) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1
    Ecco i file principali (scusate ma mi tocca fare due post consecutivi perchè è troppo lungo)

    "index.php"
    Codice HTML:
    <!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" xml:lang="en-US" lang="en-US" dir="ltr">
    	<head>
    		<title>InsanityVille &raquo; Shoutbox</title>
    		<link rel="stylesheet" type="text/css" href="style/style.css">
    		<meta name="Title" content="InsanityVille">
    		<meta name="Author" content="Mocanu George-Adrian">
    		<meta name="Subject" content="InsanityVille Special Stuff">
    		<meta name="Description" content="InsanityVille Scripts Demos. AJAX Shoutbox">
    		<meta name="Keywords" content="insain scripts, php scripts, ajax shoutbox, jquery, ajax, shoutbox, jquery validation, ajax link checker, link cheker">
    		<meta name="Language" content="english">
    		<meta name="Distribution" content="free">
    		<meta name="Robots" content="All">
    		<meta name="verify-v1" content="r/NImAjDz0HRiUAolYgw6ctQfuyYPuRHvhpSgyiYDnA=" />
    		<script src="js/jquery.js" type="text/javascript" language="javascript"></script>
    		<script src="js/code.js" type="text/javascript" language="javascript"></script>
        </head>
    <body>
    	<div id="content">
    		<div id="header">
    			<a href="http://shoutbox.insanityville.com/"><h1>Shoutbox</h1></a>
    			<p>Check out the demos for the scripts <a href="http://insanityville.com" target="_blank" title="InsanityVille">InsanityVille</a> is offering for free download.</p>
    		</div>
    		<table>
    			<tr>
    				<td width="68%">
    					<h2>InsanityVille's AJAX Shoutbox <span style="font: normal xx-small Verdana;">v 0.1</span></h2>
    					<br />This Shoutbox is another exemplification of the power of AJAX.<br />
    					<h2>Please fill out the form:</h2>
    					<div class="formContainer">
    						<div class="form">
    						   Nickname: <input type="text" id="shoutNickname" maxlength="50" size="10" class="textInput" value="<? echo $user->data['username']; ?>" />&nbsp;
    						   Message: <input type="text" size="46" id="shoutMessage" maxlength="100" class="textInput" />&nbsp;
    						   <input type="button" id="doShout" class="textInput" value="SHOUT!" />
    						   <span id="msgbox" style="display:none"></span>				      
    						</div>
    						<div class="clear">&nbsp;</div>
    						<div class="status"><span id="shoutStatus" class="shoutStatus">Fill in the fields above to shout!</span></div>
    						<div class="clear">&nbsp;</div>
    						<div class="shouts" id="shoutsContainer"></div>				
    					</div>
    				</td>
    			</tr>
    		</table>
    			<p id="footer">&copy; 2008 InsanityVille. All rights reserved.</p>
    	</div>
    </body>
    </html>
    "php/getShouts.php"
    Codice PHP:
    <?php

    [...]

    include(
    'classes/shoutBox.class.php');
    header('Content-type: text/xml');
    $sb = new Shoutbox($_POST['nickname'], $_POST['message'], $_POST['op']);
    echo
    $sb->response;
    ?>
    "php/classes/shoutBox.class"
    Codice PHP:
    <?php
    class Shoutbox {

    public
    $response;

    public function
    Shoutbox($nick = null, $msg = null, $op = null) {
    if(!
    $nick && !$msg && $op == 'tick') {
    $this->returnShouts();
    }
    if(
    $op == 'newShout') {
    $this->validateData($nick, $msg);
    }
    }

    public function
    returnShouts($status = null, $error = null) {
    $query = execute_query('SELECT * FROM `shouts` ORDER BY `id` DESC LIMIT 0, 10');
    $response = '';
    if(!
    $query) {
    $response .= '<response>';
    $response .= '<error>Database connection problem!</error>';
    $response .= '</response>';
    } else {
    $noShouts = count($query);
    if(
    $noShouts == 0) {
    $response .= '<response>';
    $response .= '<error>No shouts yet!</error>';
    $response .= '</response>';
    } else {
    $response .= '<response>';
    foreach (
    $query as $shout) {
    $response .= '<shout>';
    $response .= '<nickname>'.$shout['nickname'].'</nickname>';
    $response .= '<message>'.$shout['message'].'</message>';
    $response .= '<date>'.$this->showTime($shout['date_added']).'</date>';
    $response .= '</shout>';
    }
    $response .= '<status>'.$status.'</status>';
    $response .= '<error>'.$error.'</error>';
    $response .= '</response>';
    }
    }
    $this->response = $response;
    }

    private function
    validateData($nick = null, $msg = null) {
    $nick = $this->strFilter($nick);
    $msg = $this->strFilter($msg);
    if(empty(
    $nick)) {
    $this->returnShouts(null, 'Don\'t be shy, enter your nickname.');
    return
    false;
    }
    elseif(empty(
    $msg)) {
    $this->returnShouts(null, 'It doesn\'t seem that you want to shout at all! Write the message.');
    return
    false;
    }
    else {
    $this->addShout($nick, $msg);
    }
    }

    private function
    strFilter($string) {
    /* $string = str_replace("http://", "", $string);
    $string = str_replace("<", "", $string);
    $string = str_replace(">", "", $string);
    */
    $string = htmlentities($string);
    $string = addslashes($string);
    return
    $string;
    }

    private function
    showTime($data_comment = null) {
    $now = date('Y-m-d H:i:s');
    $data_comment = urldecode($data_comment);
    $data_comment_data = substr($data_comment, 0, 10);
    $data_comment_curenta = substr($now, 0, 10);
    $nrsecunde = (strtotime($now) - strtotime($data_comment));
    $nrminute = $nrsecunde / (60);
    $nrore = $nrminute / (60);
    $nroreafisat = intval($nrore);
    $nrminuteafisat = intval($nrminute - ($nroreafisat * 60));
    $nrsecundeafisat = intval($nrsecunde - ($nroreafisat * 60 * 60) - ($nrminuteafisat * 60));
    if (
    $nroreafisat == 1 ) {$ore = 'ora';} else {$ore = 'ore';}
    if (
    $nrminuteafisat == 1 ) {$minute = 'minuto';} else {$minute = 'minuti';}
    if (
    $nrsecundeafisat == 1 ) {$secunde = 'secondo';} else {$secunde = 'secondi';}
    if(
    $nroreafisat > 0 && $nroreafisat <= 23 && $nrminuteafisat > 0) {
    return
    $nroreafisat.' '.$ore.' '.'e'.' '.$nrminuteafisat.' '.$minute.' '.'fa';
    }
    elseif(
    $nroreafisat == 0 && $nrminuteafisat > 0) {
    return
    $nrminuteafisat.' '.$minute.' '.'e'.' '.$nrsecundeafisat.' '.$secunde.' '.'fa';
    }
    elseif(
    $nroreafisat == 0 && $nrminuteafisat == 0) {
    return
    $nrsecundeafisat.' '.$secunde.' '.'fa';
    }
    elseif (
    $nroreafisat > 24) {
    // return $data_comment;
    return date('d-m-Y H:i:s', strtotime($data_comment));
    }
    }

    private function
    addShout($nickname = null, $message = null) {
    $time = date('Y-m-d H:i:s');
    $query = execute_query("INSERT INTO `shouts` (`nickname`, `message`, `date_added`) VALUES ('".$nickname."', '".$message."','".$time."');");
    /* if(!$query) {
    $this->returnShouts(null, 'Database connection problem!');
    } else {
    $this->returnShouts('Shout added successfully');
    }
    */
    $this->returnShouts();
    }
    }
    ?>
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  2. #2
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    "js/code.js"
    Codice HTML:
    $(document).ready(function() {
    	refreshShouts();
    	$('#doShout').bind('click', function(){
    		var nick = $('#shoutNickname').val();
    		var msg = $('#shoutMessage').val();
    		$.ajax({
    			   	type: "POST",
    			   	dataType: "xml",
    			   	url: "php/getShouts.php",
    			   	data: {nickname: nick, message: msg, op: 'newShout'},
    			  	error: function() { $('#shoutStatus').empty().addClass('shoutError').html('1 - An error occured! Try again.'); },
    			   	success: function(xml){
    //			   		$('#shoutNickname').val('');
    			   		$('#shoutMessage').val('');
    //			   		if($('shout', xml).size() > 0) {
    /*			   			if($('error', xml).text()) {
    							$('#shoutStatus').empty().removeClass().addClass('shoutError').html($('error', xml).text());
    			   			} else {
    			   				$('#shoutStatus').empty().removeClass().addClass('shoutStatus').html($('status', xml).text());
    			   			}
    */				   		$('shout', xml).each(function(id){
    				   			var nickname = $('nickname', this).text();
    				   			var message = $('message', this).text();
    				   			var date = $('date', this).text();
    				   			var cssClass = 'shoutRow1';
    				   			if((id%2)/10 == 0)
    				   				cssClass = 'shoutRow';
    				   			var shoutRow = '<div id="'+cssClass+'"><span id="nickname">'+nickname+' <span id="date">('+date+')</span>: </span><span id="shoutedMessage">'+message+'</span></div>';
    				   			if(id == 0)
    				   				$('#shoutsContainer').empty().removeClass().addClass('shouts').html(shoutRow);
    				   			else
    				   				$('#shoutsContainer').removeClass().addClass('shouts').append(shoutRow);
    				   		});
    /*			   		} else {
    			   			$('#shoutStatus').empty().addClass('shoutError').html($('error', xml).text());
    			   			$('#shoutsContainer').empty().removeClass().addClass('noShouts').html('Shouts will be displayed here!');
    			   		}
    */			   	}
    		});
    	});
    });
    function refreshShouts() {
    	var refreshRate = 5000; // time in milliseconds
    	var cacheBuster = (new Date).getTime();
    	$.ajax({
    	   	type: "POST",
    	   	dataType: "xml",
    	   	url: "php/getShouts.php",
    	   	data: {op: 'tick', time: cacheBuster},
    	   	error: function() { $('#shoutStatus').empty().addClass('shoutError').html('2 - An error occured! Try again.'); },
    	   	success: function(xml){
    //	   		if($('shout', xml).size() > 0) {
    				$('#shoutStatus').empty().removeClass().addClass('shoutStatus').html('Showing shouts.');
    		   		$('shout', xml).each(function(id){
    		   			var nickname = $('nickname', this).text();
    		   			var message = $('message', this).text();
    		   			var date = $('date', this).text();
    		   			var cssClass = 'shoutRow1';
    		   			if((id%2)/10 == 0)
    		   				cssClass = 'shoutRow';
    		   			var shoutRow = '<div id="'+cssClass+'"><span id="nickname">'+nickname+' <span id="date">('+date+')</span>: </span><span id="shoutedMessage">'+message+'</span></div>';
    		   			if(id == 0)
    		   				$('#shoutsContainer').empty().removeClass().addClass('shouts').html(shoutRow);
    		   			else
    		   				$('#shoutsContainer').removeClass().addClass('shouts').append(shoutRow);
    		   		});
    /*	   		} else {
    	   			$('#shoutStatus').empty().addClass('shoutError').html($('error', xml).text());
    	   			$('#shoutsContainer').empty().removeClass().addClass('noShouts').html('Shouts will be displayed here!');
    	   		}
    */	   	}
    	});
    	setTimeout('refreshShouts()', refreshRate);
    }
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  3. #3
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Up, qualcuno può aiutarmi?
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •