Visualizzazione risultati 1 fino 10 di 10

Discussione: Inserire messaggio scorrevoli nella pagina web

  1. #1
    Guest

    Predefinito Inserire messaggio scorrevoli nella pagina web

    Salve a tutti ho un dubbio amletico da risolvere ^_^
    Premetto che prima qst sistema funzionava sempre... ora non mi riesce e non so perchè.
    In pratica inserisco un link nella mia pagina web, salvandola index.php (lavorato precedentemente in html), tramite il quale (cliccandoci sopra) si apre un popup con un form (campo nick + campo corpo del messaggio) e tasticino invio per l'inserimento di un sms da 160 caratteri che dovrebbe poi scorrere orizzontalmente nella cella in cui inserisco lo script.
    Di seguio la mia guida per farvi capire cosa creo:

    Creo un db solo per questo servizio, creando le seguenti tabelle:
    Codice PHP:
    id - int(11)
    nick - varchar(30)
    testo - varchar (160)
    data - int(11)
    Dopodichè realizzo il file config.php (che andrò poi ad uppare nella stessa cartella in cui si trova l'index):
    Codice PHP:
    <?
    $dbhost
    ="localhost";
    $dbuser="mio_user";
    $dbpass="miapass";
    $dbname="mio_db";
    // COLLEGAMENTO AL DATABASE
    $db=mysql_connect($dbhost,$dbuser,$dbpass)or die (mysql_error());
    mysql_select_db($dbname,$db) or die(mysql_error());

    // FUNZIONI
    function preparaDB($text) {
    $text = nl2br($text);
    return
    $text;
    }
    ?>
    Ancora nell'index, nel body inserisco:
    Codice PHP:
    <?php

    require ("config.php");
    $result =mysql_query("SELECT * FROM messaggio ORDER by data DESC LIMIT 40") or die(mysql_error());
    ?>

    <script language="JavaScript">
    <!--
    <?php

    while($row=mysql_fetch_array($result)) {
    $row[nick] = htmlspecialchars($row[nick]);
    $row[testo] = str_replace("\n"," ", $row[testo]);
    $row[testo] = str_replace("\r"," ", $row[testo]);
    $row[testo] = addslashes($row[testo]);
    $testolungo .= "da ".$row[nick]." - ".$row[testo]." - ";
    }
    echo
    "var scrtxt=\"I vostri messaggi: $testolungo\";";
    echo
    "var lentxt=scrtxt.length;";
    echo
    "var width=100;";
    echo
    "var pos=1-width;";

    ?>

    function scorrevole() {
    pos++;
    var scroller="";
    if (pos==lentxt) {
    pos=1-width;
    }
    if (pos<0) {
    for (var i=1; i<=Math.abs(pos); i++) {
    scroller=scroller+" ";}
    scroller=scroller+scrtxt.substring(0,width-i+1);
    }
    else {
    scroller=scroller+scrtxt.substring(pos,width+pos);
    }
    window.defaultStatus = scroller;
    setTimeout("scorrevole()",90);
    }
    //-->
    </script>
    Poi aggiungo nella riga dove ho il tag <body... ecc. ecc.> questo codice:
    Codice PHP:
    onLoad="scorrevole();return true;"
    Per creare un popup metto questo script nel body
    Codice PHP:
    <script>
    function
    popup(str) {
    searchWin = window.open(str,'open','scrollbars=no,resizable=no,width=400,height=320,status=no,location=no,toolbar=no');
    // searchWin.refer = self;
    }
    </script>
    Per richiamare il link al popup inserisci questo codice nel collegamento ipertestuale
    Codice PHP:
    <a href="javascript:popup('inviamex.php');">
    Creo le seguenti pagine ovviamente:
    inviamex.php:
    Codice PHP:
    <html>
    <
    head>
    <
    title>Invia un messaggio!</title>
    <
    script>
    var
    postmaxchars = 100;
    function
    validate(theform) {
    if (
    theform.nick.value=="" || theform.text.value=="") {
    alert("Non hai inserito tutti i campi correttamente!");
    return
    false; }
    if (
    postmaxchars != 0) {
    if (
    theform.text.value.length > 100) {
    alert("Puoi mettere al massimo 100 caratteri mentre hai messo "+theform.text.value.length+" caratteri.");
    return
    false; }
    else { return
    true; }
    } else { return
    true; }
    }

    </script>
    </head>
    <body bgcolor="#FFF4BF">
    <form name="form" method="post" action="makemex.php" onSubmit="return validate(form)">
    <p align="center"><font class=newsgrande size="2" face="Verdana" color="#000080">Vuoi far
    scorrere un tuo saluto o un messaggio su miosito.it? Inserisci il tuo
    nick ed il messaggio e il gioco è fatto!</font class=newsgrande></p>
    <p align="center"><b><font class=newsgrande face="Verdana" size="2"> <font class=newsgrande color="#CC0000">
    Il tuo nome o nickname:</font class=newsgrande></font class=newsgrande></b><br>
    <input name="nick"type="text" id="nick" size="30" maxlength="30">
    <br>
    <br>
    <b><font class=newsgrande face="Verdana" size="2"> <font class=newsgrande color="#CC0000">Il
    tuo messaggio (max 100 caratteri):</font class=newsgrande></font class=newsgrande></b><br>
    <textarea name="text" cols="41" rows="5" id="text"></textarea>
    <br><br>
    <input name="send" type="submit" id="send" value="Invia">
    <br>
    </p>
    </form>
    </body>
    </html>
    Creo la pagina makemex.php
    Codice PHP:
    <?
    require ("config.php");
    //----MODIFICA PER PHP register_globals OFF
    $nick = $_POST['nick'];
    $text = $_POST['text'];
    $send = $_POST['send'];
    //-----------------------------------------
    if($send)
    {
    if(!
    $nick || !$text)
    {
    $output="Non hai inserito correttamente tutti i dati";
    $ride="inviamex.php";
    }
    elseif(
    $_COOKIE["cookiemessage"] == "1")
    {
    $ride="close.php";
    $output="Hai già inserito un messaggio!";
    } else {
    $data=time();
    $text=trim($text);
    mysql_query("INSERT INTO messaggio (nick,testo,data) VALUES ('$nick','$text','$data')") or die ("Errore".mysql_error());
    $output="Il tuo messaggio è stato inserito correttamente!";
    $ride="close.php";
    setcookie("cookiemessage", "1", time()+(3600*24));
    }
    } else {
    header("Location: inviamex.php");
    }
    ?>
    <html>

    <head>
    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
    <meta http-equiv="refresh" content="3;URL=<?=$ride?>">
    <title>miosito.it - Redirecting...</title>
    </head><body bgcolor="#FFFFFF" >
    <p>&nbsp;</p>
    <div align="center">
    <center>
    <table width="100%" height="60" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
    <tr valign="middle" align="center">
    <td bgcolor="#FFF4BF"><font size="2" face="Verdana"><?=$output?></font><br>
    <a href="<?=$ride?>"><font size="1" face="Verdana">Clicca qui se il tuo browser
    non ti redirige automaticamente !</font></a></td>
    </tr>
    </table>
    </center>
    </div>
    </body>
    </html>
    Creo la pagina close.php

    Codice PHP:
    <html>
    <
    head>
    <
    title>Grazie!</title>
    <
    link href="style.css" rel="stylesheet" type="text/css">
    </
    head>

    <
    body bgcolor="#FFF4BF" vlink="#0000FF" alink="#0000FF">

    <
    table border="0" width="100%" cellspacing="0" cellpadding="0" style="border-collapse: collapse" bordercolor="#111111">
    <
    tr>
    <
    td width="100%">
    <
    p align="center" style="margin-top: 0; margin-bottom: 0">&nbsp;</p>
    <
    p align="center" style="margin-top: 0; margin-bottom: 0">&nbsp;</p>
    <
    p align="center" style="margin-top: 0; margin-bottom: 0">&nbsp;</p>
    <
    p align="center" style="margin-top: 0; margin-bottom: 0"><b>
    <
    font class=newsgrande face="Verdana" size="2" color="#000080">Grazie per aver inviato il
    messaggio
    !</font></b></p>
    <
    p align="center" style="margin-top: 0; margin-bottom: 0"><b>
    <
    font class=newsgrande face="Verdana" size="2" color="#000080">Aggiorna la pagina per
    visualizzarlo
    .</font></b></p>
    <
    p align="center" style="margin-top: 0; margin-bottom: 0">&nbsp;<p align="center" style="margin-top: 0; margin-bottom: 0">&nbsp;<p align="center" style="margin-top: 0; margin-bottom: 0"><b><A HREF="#" onClick="self.close()">
    <
    font class=newsgrande size="2" face="Verdana" color="#FF0000">Chiudi
    Finestra
    </font></A></b></td>
    </
    tr>
    </
    table>
    </
    body>

    </
    html>
    RISULTATO? Il messaggio scorrevole nemmeno l'ombra... però quando vado nel db tramite phpMyAdmin.... il messaggio memorizzato c'è?

    HELP ME dove sbaglio?
    Grazie mille a tutti!

  2. #2
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    secondo me il problema è che devi includere il php dentro la funzione scorrevole(), però non sono sicuro, devi provare così:

    Codice PHP:
    <?php

    require ("config.php");
    $result =mysql_query("SELECT * FROM messaggio ORDER by data DESC LIMIT 40") or die(mysql_error());

    ?>

    <script language="JavaScript">
    <!--
    function scorrevole() {

    <?php

    while($row=mysql_fetch_array($result)) {
    $row[nick] = htmlspecialchars($row[nick]);
    $row[testo] = str_replace("\n"," ", $row[testo]);
    $row[testo] = str_replace("\r"," ", $row[testo]);
    $row[testo] = addslashes($row[testo]);
    $testolungo .= "da ".$row[nick]." - ".$row[testo]." - ";
    }
    echo
    "var scrtxt=\"I vostri messaggi: $testolungo\";";
    echo
    "var lentxt=scrtxt.length;";
    echo
    "var width=100;";
    echo
    "var pos=1-width;";

    ?>

    pos++;
    var scroller="";
    if (pos==lentxt) {
    pos=1-width;
    }
    if (pos<0) {
    for (var i=1; i<=Math.abs(pos); i++) {
    scroller=scroller+" ";}
    scroller=scroller+scrtxt.substring(0,width-i+1);
    }
    else {
    scroller=scroller+scrtxt.substring(pos,width+pos);
    }
    window.defaultStatus = scroller;
    setTimeout("scorrevole()",90);
    }
    //-->
    </script>
    ho letto tutto velocemente, c'è da confondersi....

    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  3. #3
    Guest

    Predefinito thanks ma...

    Innanzitutto grazie... ma o sarò che sono trp confusa... qual è stata la tua modifica hai aggiunto ho sottratto qualcosa? Se si, da dove? Così di conseguenza sottraggo magari se c'è qualcosa in più? Cmq ho provato a sostituire tutto il codice che hai postato... non funziona :(

    Sei stato lo stesso gentilissimo...
    attendo tue
    -_^

  4. #4
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    comunque ho sbagliato....

    proviamo in altro modo:

    Codice PHP:
    <?php

    require ("config.php");
    $result =mysql_query("SELECT * FROM messaggio ORDER by data DESC LIMIT 40") or die(mysql_error());

    while(
    $row=mysql_fetch_array($result)) {
    $row[nick] = htmlspecialchars($row[nick]);
    $row[testo] = str_replace("\n"," ", $row[testo]);
    $row[testo] = str_replace("\r"," ", $row[testo]);
    $row[testo] = addslashes($row[testo]);
    $testolungo .= "da ".$row[nick]." - ".$row[testo]." - ";
    }

    ?>

    <script language="JavaScript">
    <!--

    var scrtxt="I vostri messaggi: <?php echo $testolungo; ?>";
    var lentxt=scrtxt.length;
    var width=100;
    var pos=1-width;

    function scorrevole() {

    pos++;
    var scroller="";
    if (pos==lentxt) {
    pos=1-width;
    }
    if (pos<0) {
    for (var i=1; i<=Math.abs(pos); i++) {
    scroller=scroller+" ";}
    scroller=scroller+scrtxt.substring(0,width-i+1);
    }
    else {
    scroller=scroller+scrtxt.substring(pos,width+pos);
    }
    window.defaultStatus = scroller;
    setTimeout("scorrevole()",90);
    }
    //-->
    </script>
    guarda così se funziona....




    devi inserire il javascript tra <head> e </head>

    e ho provato il javascript e mi correggo funziona in parte su determinati browser, qui:
    http://eurosalute.altervista.org/tool/scrolling.html

    ie8 e firefox non funziona se non si attiva javascript per consentire la modifica del testo della barra di stato;

    k-meleon invece funziona immediatamente;

    per gli altri browser bisogna provare;
    Ultima modifica di EuroSalute : 18-05-2010 alle ore 02.00.51 Motivo: più info e correzzioni
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  5. #5
    Guest

    Predefinito ...

    Sei un tesoro... ma proprio non funziona... ma solo quello che hai riscritto tu devo mettere nell'head? Te come hai fatto a farlo funzionare?
    help meeeeeeeeeeeeee
    Grazie siempre

  6. #6
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    ho fatto semplicemente una simulazione di cosa dovrebbe fare il tuo codice....

    ho creato adesso il file scrolling.php, lo puoi vedere qui:
    http://eurosalute.altervista.org/tool/scrolling.php

    ho aggiunto un input di testo, così lo si può vedere su tutti i browser.

    e qui è il codice di scrolling.php:
    Codice PHP:
    <?php
    $testolungo
    = "scrolling text";
    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>
    <head>
    <title>Javascript Scrolling</title>
    <script language="JavaScript">
    <!--

    var scrtxt="Testing......<?php echo $testolungo; ?>";
    var lentxt=scrtxt.length;
    var width=100;
    var pos=1-width;

    function scorrevole() {

    pos++;
    var scroller="";
    if (pos==lentxt) {
    pos=1-width;
    }
    if (pos<0) {
    for (var i=1; i<=Math.abs(pos); i++) {
    scroller=scroller+" ";}
    scroller=scroller+scrtxt.substring(0,width-i+1);
    }
    else {
    scroller=scroller+scrtxt.substring(pos,width+pos);
    }
    window.defaultStatus = scroller;

    //qui ho aggiunto l'input di testo e scritto il valore dello scroller
    document.scrolling.testo.value=scroller;

    setTimeout("scorrevole()",90);
    }
    //-->
    </script>
    </head>

    <body onLoad="scorrevole();return true;">

    <div style="text-align:center;font-size:2em;height:50px;">...Guardate la Barra di Stato...oppure il campo testo:</div>

    <!--qui ho aggiunto un form con input di testo -->
    <form name="scrolling">
    <input name="testo" size="80" type="text">
    </form>

    </body>
    </html>
    Ultima modifica di EuroSalute : 18-05-2010 alle ore 20.12.17 Motivo: più info
    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  7. #7
    Guest

    Predefinito ^_^

    Ciao... ma sei gentilissimo che sperimenti insieme a me... ma... il codice che hai appena inserito... è relativo a scrolling.php?
    lo devo inserire nell'head della mia index.php?

  8. #8
    L'avatar di EuroSalute
    EuroSalute non è connesso AlterVistiano
    Data registrazione
    12-05-2003
    Messaggi
    969

    Predefinito

    la tua index.php sarà:
    Codice PHP:
    <?php

    require ("config.php");
    $result =mysql_query("SELECT * FROM messaggio ORDER by data DESC LIMIT 40") or die(mysql_error());

    while(
    $row=mysql_fetch_array($result)) {
    $row[nick] = htmlspecialchars($row[nick]);
    $row[testo] = str_replace("\n"," ", $row[testo]);
    $row[testo] = str_replace("\r"," ", $row[testo]);
    $row[testo] = addslashes($row[testo]);
    $testolungo .= "da ".$row[nick]." - ".$row[testo]." - ";
    }

    ?>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

    <html>
    <head>
    <title>Javascript Scrolling</title>
    <script language="JavaScript">
    <!--

    var scrtxt="I vostri messaggi: <?php echo $testolungo; ?>";
    var lentxt=scrtxt.length;
    var width=100;
    var pos=1-width;

    function scorrevole() {

    pos++;
    var scroller="";
    if (pos==lentxt) {
    pos=1-width;
    }
    if (pos<0) {
    for (var i=1; i<=Math.abs(pos); i++) {
    scroller=scroller+" ";}
    scroller=scroller+scrtxt.substring(0,width-i+1);
    }
    else {
    scroller=scroller+scrtxt.substring(pos,width+pos);
    }
    window.defaultStatus = scroller;

    //qui ho aggiunto l'input di testo e scritto il valore dello scroller
    document.scrolling.testo.value=scroller;

    setTimeout("scorrevole()",90);
    }
    //-->
    </script>
    </head>

    <body onLoad="scorrevole();return true;">

    <div style="text-align:center;font-size:2em;height:50px;">...Guardate la Barra di Stato...oppure il campo testo:</div>

    <!--qui ho aggiunto un form con input di testo -->
    <form name="scrolling">
    <input name="testo" size="80" type="text">
    </form>

    </body>
    </html>
    apporterai le modifiche nel body, in base a come o dove vuoi inserire i messaggi e visualizzare lo scrolling dei messaggi.

    LOTTO MATEMATICO-SCENTIFICO che FUNZIONA:
    Scripts di Calcolo Automatico Metodologie http://eurosalute.altervista.org

    VINCI OGNI SETTIMANA CON IL NUOVO METODO 5
    FAI IL TEST CON L'ANALISI VINCITE

  9. #9
    Guest

    Predefinito

    0.0 per inserire un testo scrollevole esiste il tag html
    Codice HTML:
    <marquee>testo</marquee>

  10. #10
    Guest

    Predefinito ...

    Sening... non è un semplice messaggio scorrevole... con li'ivio tramite un form questo messaggio deve apparire in una determinata zona... Mi sto disperando help me

    -

    MA EuroSalute sei grandeeeeeeeeeeeeeeeeee....
    funziona con <form></form>
    GRAZIE
    GRAZIE
    GRAZIE...
    ho anche provato ad inserirlo dove voglio e funziona!
    Thanks
    Ultima modifica di andreafallico : 23-05-2010 alle ore 18.00.47 Motivo: Usa il tasto Edita

Regole di scrittura

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