Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32

Discussione: php nel dhtml

  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82

    php nel dhtml

    Ciao a tutti.

    Dunque io ho il parsing in php di un file xml, che mi restituisce in formato html delle news in tempo reale da un altro sito.


    Ora io queste news vorrei farle scorrere con un dhtml che ho trovato
    qui

    La domanda è in che modo inserire la parte di codice php, ossia il 'ciclo for' che impagina i risultati nella variabile del dhtml che lo deve far scorrere?

    Grazie e scusate (sono un novello)

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    questo è il codice php che devo inserire nella var del dhtml ma non mi si visualizza nulla!

    codice:
    <table width="100" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td class="news"> 
    
    
    <?php 
    for ($i=0;$i<count($arItems);$i++) { 
    $txItem = $arItems[$i]; 
    ?> 
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><a class="base" href = "<?php echo($txItem->xLink); ?>"><?php echo($txItem->xTitle); ?></a></font> 
    
    <?php 
    if ($bDesc) { 
    ?> 
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><?php echo ($txItem->xDescription); ?></font> 
    
    <?php 
    } 
    echo ("
    "); 
    } 
    ?> 
    </td> 
    </tr> 
    </table>
    aiutatemi vi prego

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    sostituisci il contenuto della variabile marqueecontent dello script DHTML con la tua stringa che stampa le news da PHP...

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    l'ho fatto in questo modo:

    codice:
    var marqueecontent='<table width="100" border="0" cellspacing="0" cellpadding="0"> 
    <tr> 
    <td class="news"> 
    
    
    <?php 
    for ($i=0;$i<count($arItems);$i++) { 
    $txItem = $arItems[$i]; 
    ?> 
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><a class="base" href = "<?php echo($txItem->xLink); ?>"><?php echo($txItem->xTitle); ?></a></font> 
    
    <?php 
    if ($bDesc) { 
    ?> 
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><?php echo ($txItem->xDescription); ?></font> 
    
    <?php 
    } 
    echo ("
    "); 
    } 
    ?> 
    </td> 
    </tr> 
    </table>'
    ma non si vede nulla!

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    puoi mettere online una pagina di prova? credo si tratti di un problema di apici o qualcosa di simile...

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    ti posso postare tutto il codice che è questo:

    codice:
    <?php
    
    class xItem {
      var $xTitle;
      var $xLink;
      var $xDescription;
    }
    
    $sTitle = "";
    $sLink = "";
    $sDescription = "";
    $arItems = array();
    $itemCount = 0;
    
    $uFile = "http://www.repubblica.it/rss/homepage/rss2.0.xml";
    $bDesc = true;
    $uFont = "Verdana, Arial, Helvetica, sans-serif";
    $uFontSize = "2";
    
    function startElement($parser, $name, $attrs) {
      global $curTag;
    
      $curTag .= "^$name";
    
    }
    
    function endElement($parser, $name) {
      global $curTag;
    
      $caret_pos = strrpos($curTag,'^');
    
      $curTag = substr($curTag,0,$caret_pos);
    
    }
    
    function characterData($parser, $data) { global $curTag; 
      global $sTitle, $sLink, $sDescription;  
      $titleKey = "^RSS^CHANNEL^TITLE";
      $linkKey = "^RSS^CHANNEL^LINK";
      $descKey = "^RSS^CHANNEL^DESCRIPTION";
      if ($curTag == $titleKey) {
        $sTitle = $data;
      }
      elseif ($curTag == $linkKey) {
        $sLink = $data;
      }
      elseif ($curTag == $descKey) {
        $sDescription = $data;
      }
    
      global $arItems, $itemCount;
      $itemTitleKey = "^RSS^CHANNEL^ITEM^TITLE";
      $itemLinkKey = "^RSS^CHANNEL^ITEM^LINK";
      $itemDescKey = "^RSS^CHANNEL^ITEM^DESCRIPTION";
    
      if ($curTag == $itemTitleKey) {
        $arItems[$itemCount] = new xItem();     
    
        $arItems[$itemCount]->xTitle = $data;
      }
      elseif ($curTag == $itemLinkKey) {
        $arItems[$itemCount]->xLink = $data;
      }
      elseif ($curTag == $itemDescKey) {
        $arItems[$itemCount]->xDescription = $data;
        $itemCount++;
      }
    }
    
    $xml_parser = xml_parser_create();
    xml_set_element_handler($xml_parser, "startElement", "endElement");
    xml_set_character_data_handler($xml_parser, "characterData");
    if (!($fp = fopen($uFile,"r"))) {
      die ("could not open RSS for input");
    }
    while ($data = fread($fp, 4096)) {
      if (!xml_parse($xml_parser, $data, feof($fp))) {
        die(sprintf("XML error: %s at line %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
      }
    }
    xml_parser_free($xml_parser);
    
    
    ?>
    <html>
    <head>
    <title><?php echo ($sTitle); ?></title>
    <meta name = "description" content = "<?php echo ($sDescription); ?>">
    <link href="foglio.css" rel="stylesheet" type="text/css">
    
    </head>
    <body bgcolor = "#FFFFFF">
    <script language="JavaScript1.2">
    
    /*
    Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
    For full source code, 100's more DHTML scripts, and TOS, visit http://www.dynamicdrive.com
    Credit MUST stay intact
    */
    
    //Specify the marquee's width (in pixels)
    var marqueewidth="200px"
    //Specify the marquee's height
    var marqueeheight="150px"
    //Specify the marquee's marquee speed (larger is faster 1-10)
    var marqueespeed=2
    //Pause marquee onMousever (0=no. 1=yes)?
    var pauseit=1
    
    //Specify the marquee's content
    //Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):
    
    var marqueecontent='<table width="100" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td class="news">
    
    
    <?php
    for ($i=0;$i<count($arItems);$i++) {
      $txItem = $arItems[$i];
    ?>
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><a class="base" href = "<?php echo($txItem->xLink); ?>"><?php echo($txItem->xTitle); ?></a></font>
    
    <?php
    if ($bDesc) {
    ?>
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><?php echo ($txItem->xDescription); ?></font>
    
    <?php
    }
    echo ("
    ");
    }
    ?>
    </td>
      </tr>
    </table>'
    
    
    ////NO NEED TO EDIT BELOW THIS LINE////////////
    
    marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS
    var copyspeed=marqueespeed
    var pausespeed=(pauseit==0)? copyspeed: 0
    var iedom=document.all||document.getElementById
    var actualheight=''
    var cross_marquee, ns_marquee
    
    function populate(){
    if (iedom){
    cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee
    cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
    cross_marquee.innerHTML=marqueecontent
    actualheight=cross_marquee.offsetHeight
    }
    else if (document.layers){
    ns_marquee=document.ns_marquee.document.ns_marquee2
    ns_marquee.top=parseInt(marqueeheight)+8
    ns_marquee.document.write(marqueecontent)
    ns_marquee.document.close()
    actualheight=ns_marquee.document.height
    }
    lefttime=setInterval("scrollmarquee()",20)
    }
    window.onload=populate
    
    function scrollmarquee(){
    
    if (iedom){
    if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8))
    cross_marquee.style.top=parseInt(cross_marquee.style.top)-copyspeed+"px"
    else
    cross_marquee.style.top=parseInt(marqueeheight)+8+"px"
    }
    else if (document.layers){
    if (ns_marquee.top>(actualheight*(-1)+8))
    ns_marquee.top-=copyspeed
    else
    ns_marquee.top=parseInt(marqueeheight)+8
    }
    }
    
    if (iedom||document.layers){
    with (document){
    if (iedom){
    write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
    write('<div id="iemarquee" style="position:absolute;left:0px;top:0px;width:100%;">')
    write('</div></div>')
    }
    else if (document.layers){
    write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">')
    write('<layer name="ns_marquee2" width='+marqueewidth+' height='+marqueeheight+' left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
    write('</ilayer>')
    }
    }
    }
    </script>
    
    </body>
    </html>

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    Ma io penso che gli apici siano a posto non credete?

    codice:
    var marqueecontent='<table width="100" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td class="news">
    
    
    <?php
    for ($i=0;$i<count($arItems);$i++) {
      $txItem = $arItems[$i];
    ?>
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><a class="base" href = "<?php echo($txItem->xLink); ?>"><?php echo($txItem->xTitle); ?></a></font>
    
    <?php
    if ($bDesc) {
    ?>
    <font face = "<?php echo($uFont); ?>" size = "<?php echo($uFontSize); ?>"><?php echo ($txItem->xDescription); ?></font>
    
    <?php
    }
    echo ("
    ");
    }
    ?>
    </td>
      </tr>
    </table>'

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    82
    l'errore che mi restituisce il browser è "costante String senza terminazione"

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2001
    Messaggi
    3,259
    Originariamente inviato da luchett
    l'errore che mi restituisce il browser è "costante String senza terminazione"
    appunto, ci sono problemi con gli apici.

    posta la stringa javascript come viene mandata al browser oppuer, ti ripeto, metti una pagina online

  10. #10

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 © 2025 vBulletin Solutions, Inc. All rights reserved.