Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114

    inserire un javascript all'interno di un ciclo while in php

    ciao a tutti...
    ho trovato uno script javascript per lo slide di news e vorrei inserirlo all'interno di un ciclo while php.

    mi spiego meglio...

    lo script è questo :

    codice:
    <html>
    <head>
    </head>
    <body>
    <script type="text/javascript">
    
    
    var scrollerdelay='3000' //delay between msg scrolls. 3000=3 seconds.
    var scrollerwidth='130px'
    var scrollerheight='170px'
    var scrollerbgcolor='#F5E2BF'
    
    var scrollerbackground='bgntck.gif'
    
    
    var messages=new Array()
    messages[0]="<a href='http://www.link_di_rimando.**'>TESTO CLICCABILE
    
    </a>"
    messages[1]="<a href='http://www.link_di_rimando2.**'>TESTO CLICCABILE 2
    
    </a>"
    
    
    var ie=document.all
    var dom=document.getElementById
    
    if (messages.length>2)
    i=2
    else
    i=0
    
    function move(whichdiv){
    tdiv=eval(whichdiv)
    if (parseInt(tdiv.style.top)>0&&parseInt(tdiv.style.top)<=5){
    tdiv.style.top=0+"px"
    setTimeout("move(tdiv)",scrollerdelay)
    setTimeout("move2(second2_obj)",scrollerdelay)
    return
    }
    if (parseInt(tdiv.style.top)>=tdiv.offsetHeight*-1){
    tdiv.style.top=parseInt(tdiv.style.top)-5+"px"
    setTimeout("move(tdiv)",50)
    }
    else{
    tdiv.style.top=parseInt(scrollerheight)+"px"
    tdiv.innerHTML=messages[i]
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }
    
    function move2(whichdiv){
    tdiv2=eval(whichdiv)
    if (parseInt(tdiv2.style.top)>0&&parseInt(tdiv2.style.top)<=5){
    tdiv2.style.top=0+"px"
    setTimeout("move2(tdiv2)",scrollerdelay)
    setTimeout("move(first2_obj)",scrollerdelay)
    return
    }
    if (parseInt(tdiv2.style.top)>=tdiv2.offsetHeight*-1){
    tdiv2.style.top=parseInt(tdiv2.style.top)-5+"px"
    setTimeout("move2(second2_obj)",50)
    }
    else{
    tdiv2.style.top=parseInt(scrollerheight)+"px"
    tdiv2.innerHTML=messages[i]
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }
    
    function startscroll(){
    first2_obj=ie? first2 : document.getElementById("first2")
    second2_obj=ie? second2 : document.getElementById("second2")
    move(first2_obj)
    second2_obj.style.top=scrollerheight
    second2_obj.style.visibility='visible'
    }
    
    if (ie||dom){
    document.writeln('<div id="main2" style="position:relative;width:'+scrollerwidth+';height:'+scrollerheight+';overflow:hidden;background-color:'+scrollerbgcolor+' ;background-image:url('+scrollerbackground+')">')
    document.writeln('<div style="position:absolute;width:'+scrollerwidth+';height:'+scrollerheight+';clip:rect(0 '+scrollerwidth+' '+scrollerheight+' 0);left:0px;top:0px">')
    document.writeln('<div id="first2" style="position:absolute;width:'+scrollerwidth+';left:0px;top:1px;">')
    document.write(messages[0])
    document.writeln('</div>')
    document.writeln('<div id="second2" style="position:absolute;width:'+scrollerwidth+';left:0px;top:0px;visibility:hidden">')
    document.write(messages[dyndetermine=(messages.length==1)? 0 : 1])
    document.writeln('</div>')
    document.writeln('</div>')
    document.writeln('</div>')
    }
    
    if (window.addEventListener)
    window.addEventListener("load", startscroll, false)
    else if (window.attachEvent)
    window.attachEvent("onload", startscroll)
    else if (ie||dom)
    window.onload=startscroll
    
    </script>
    
    </body>
    </html>
    ...ora : io vorrei riempire i campi messages[0] , messages[1] e così via con dei valori estratti da un db mysql anzichè doverli compilare a mano di volta in volta...

    come potrei fare?
    ho provato ad inserire tutto lo script all'interno di un ciclo while ma non va...mi dà degli errori di sintassi...

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    327
    una cosa simile a questa

    var messages=new Array()
    <?php


    $select = "select * from notizie";
    $query = mysql_query($select);

    while ($row = mysql_fetch_assoc($query)){

    ?>
    messages[<?php echo $i;?>]="'><?php echo $row['notizie'];?>"
    <?php

    }

    ?>

  3. #3
    Ho guardato molto velocemente ma potresti provare così


    Codice PHP:
    <html>
    <head>
    </head>
    <body>
    <script type="text/javascript">


    var scrollerdelay='3000' //delay between msg scrolls. 3000=3 seconds.
    var scrollerwidth='130px'
    var scrollerheight='170px'
    var scrollerbgcolor='#F5E2BF'

    var scrollerbackground='bgntck.gif'


    var messages=new Array()
    <?
    $results
    =mysql_query("SELECT * FROM TabellaNews");
    $I=0;
    while (
    $rNews=mysql_fetch_array($results)) {
        print(
    "messages[$I]=\"<a href='".$rNews["NomeDelCampoLink"]."'>".$rNews["NomeDelCampoTesto"]."

    [img]"
    .$rNews["NomeDelCampoImmagine"]."[/img]</a>\";\n");
        
    $I++;
    }
    ?>

    var ie=document.all
    var dom=document.getElementById

    if (messages.length>2)
    i=2
    else
    i=0

    function move(whichdiv){
    tdiv=eval(whichdiv)
    if (parseInt(tdiv.style.top)>0&&parseInt(tdiv.style.top)<=5){
    tdiv.style.top=0+"px"
    setTimeout("move(tdiv)",scrollerdelay)
    setTimeout("move2(second2_obj)",scrollerdelay)
    return
    }
    if (parseInt(tdiv.style.top)>=tdiv.offsetHeight*-1){
    tdiv.style.top=parseInt(tdiv.style.top)-5+"px"
    setTimeout("move(tdiv)",50)
    }
    else{
    tdiv.style.top=parseInt(scrollerheight)+"px"
    tdiv.innerHTML=messages[i]
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }

    function move2(whichdiv){
    tdiv2=eval(whichdiv)
    if (parseInt(tdiv2.style.top)>0&&parseInt(tdiv2.style.top)<=5){
    tdiv2.style.top=0+"px"
    setTimeout("move2(tdiv2)",scrollerdelay)
    setTimeout("move(first2_obj)",scrollerdelay)
    return
    }
    if (parseInt(tdiv2.style.top)>=tdiv2.offsetHeight*-1){
    tdiv2.style.top=parseInt(tdiv2.style.top)-5+"px"
    setTimeout("move2(second2_obj)",50)
    }
    else{
    tdiv2.style.top=parseInt(scrollerheight)+"px"
    tdiv2.innerHTML=messages[i]
    if (i==messages.length-1)
    i=0
    else
    i++
    }
    }

    function startscroll(){
    first2_obj=ie? first2 : document.getElementById("first2")
    second2_obj=ie? second2 : document.getElementById("second2")
    move(first2_obj)
    second2_obj.style.top=scrollerheight
    second2_obj.style.visibility='visible'
    }

    if (ie||dom){
    document.writeln('<div id="main2" style="position:relative;width:'+scrollerwidth+';height:'+scrollerheight+';overflow:hidden;background-color:'+scrollerbgcolor+' ;background-image:url('+scrollerbackground+')">')
    document.writeln('<div style="position:absolute;width:'+scrollerwidth+';height:'+scrollerheight+';clip:rect(0 '+scrollerwidth+' '+scrollerheight+' 0);left:0px;top:0px">')
    document.writeln('<div id="first2" style="position:absolute;width:'+scrollerwidth+';left:0px;top:1px;">')
    document.write(messages[0])
    document.writeln('</div>')
    document.writeln('<div id="second2" style="position:absolute;width:'+scrollerwidth+';left:0px;top:0px;visibility:hidden">')
    document.write(messages[dyndetermine=(messages.length==1)? 0 : 1])
    document.writeln('</div>')
    document.writeln('</div>')
    document.writeln('</div>')
    }

    if (window.addEventListener)
    window.addEventListener("load", startscroll, false)
    else if (window.attachEvent)
    window.attachEvent("onload", startscroll)
    else if (ie||dom)
    window.onload=startscroll

    </script>

    </body>
    </html>

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114
    ...il codice suggerito da MDM funziona alla grande!!

    l'unico problema è che io non ho un campo link nel database, per cui ho la necessità di scrivere il link in questo modo :

    codice:
    print("messages[$I]=\"<a href='"news.php?id=.$rNews["id"]."'
    ma in questo modo mi dà un errore di sintassi...

    come potrei correggere??

    grazie mille...

  5. #5
    ciao, prova con:

    Codice PHP:
    print('messages['.$I.']="<a href="news.php?id='.$rNews["id"]."'); 

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    114
    ottimo, grazie!

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2006
    Messaggi
    107
    Posso riprendere questo post?

    Perchè se inseriamo più di una news lo script non le visualizza?

    Mentre se nella tabella ce nè solo una si?

    thx

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.