PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   HTML, CSS und JavaScript Help! (http://www.selfphp.de/forum/forumdisplay.php?f=24)
-   -   Diashow mit variablen Bildern in den Ordnern (http://www.selfphp.de/forum/showthread.php?t=24933)

Rewa 11.04.2013 17:41:10

Diashow mit variablen Bildern in den Ordnern
 
Hallo, ich möchte eine Diashow machen bei der die anzahl der Bilder in den jeweiligen Ordnern variabel ist. Die einzelnen Ordner werden je nach Tageszeitpunkt und Uhrzeit angesprochen.

Nun, ist mein Problem, dass ich die Übergabe der Anzahl von den Bildern von PHP in JavaScript einfach nicht funktioniert.

Ich habe es folgendermaßen versucht.

index.php mit JS-Code
Code:

  if (StdAktuell >= 11 && StdAktuell <18)
  document.write('<iframe src="dia.html"> </iframe>');

dia.html der PHP-Code
PHP-Code:

<?php 
$Datum
=date('d');
$handle=opendir($Datum); // hier wird der gewünschte Ordner angegeben  
$count=0// counter wird auf 0 gesetzt    
while ($file readdir ($handle))       {            
if (
$file != "." && $file != "..")              {               
        
$count++; // counter wird erhöht                    
        //echo "filen"; // hier könntest du dieeinzelnen files                                   // ausgeben lassen          
        
}           }     
        
closedir($handle);      
        
    
?>

dia.html der JS-Code

Code:

var DatumHeute = new Date();
var Wochentag = DatumHeute.getDate();

var variable = "<?php  echo $count;?>";
 


    for(i=1; i<variable;i++) {var def_imges=new Array (Wochentag+'/Folie'+i+'.jpg');}

Genau jetzt ist das Problem, dass die variable undefined wird, da die nichts übertragen wird.
Meiner Ansicht nach müsste es funktionieren.

Ich hoffe einer von euch kann mir weiterhelfen und mir sagen, wie ich das Problem lösen kann oder mir einen denkanstoss für eine ander Lösung geben.

Danke und viele Grüße

Rewa

vt1816 11.04.2013 18:02:21

AW: Diashow mit variablen Bildern in den Ordnern
 
Hallo und willkommen hier im Forum.


Zitat:

Zitat von Rewa (Beitrag 144839)
[..]

dia.html der JS-Code

Code:

var DatumHeute = new Date();
var Wochentag = DatumHeute.getDate();

var variable = "<?php  echo $count;?>";
 


    for(i=1; i<variable;i++) {var def_imges=new Array (Wochentag+'/Folie'+i+'.jpg');}


PHP-Code:

echo 'var DatumHeute = new Date();
var Wochentag = DatumHeute.getDate();

var variable = ' 
.$count .';
 
    for(i=1; i<variable;i++) {var def_imges=new Array (Wochentag+\'/Folie\'+i+\'.jpg\');}'


Da die Einbindung des JS-Codes in Deine dia.php (*.html werden nicht geparst - es sei denn es ist so eingestellt, was ich nicht glaube) nicht ersichtlich, kann ich Dir nur diesen Denkanstoss geben.

Rewa 12.04.2013 11:18:31

AW: Diashow mit variablen Bildern in den Ordnern
 
Danke schön vt1816! :)

Die übertragung der Variable funktioniert einwandfrei :) nur hab ich jetzt das Problem, dass ich den Syntaktischen Ausdruck nicht korrekt wiederspiegeln kann.
Der JS-Code um DiaShow zu erreichen sah so aus.
Code:

        this.b_insert= function(){
                var b, thestylid, thez, thevis, slidehei;
                slidehei=(showcontr)?(pichei+25):(pichei); //add space for the controls
                var myhtml="<div style='width:"+picwid+"px;height:"+slidehei+"px;'>";
                          myhtml+="<div style='position:absolute;width:"+picwid+"px;height:"+pichei+"px;'>";
                for(b=1;b<=emax;b++){
                        thez=1;thevis='hidden';
                        if(b<=1) {thez=2; thevis='visible';}
                          myhtml+="<div id='img_"+slideid+"_"+b+"' style='font-size:0;height:"+pichei+"px;width:"+picwid+"margin:0;padding:0;text-align:center;visibility:"+thevis+";z-index:"+thez+";position:absolute;left:0;top:0;width:"+picwid+"px;height:"+pichei+"px;background-color:"+backgr+";'>";
                                myhtml+="<img src='"+imges[(b-1)]+"' style='vertical-align:middle;border:0;height:600px;width:1000px' alt=''/></div>";
                }
                          myhtml+="</div>";

Und es wird in HTML dann so ausgegeben:

<div style="font-size: 0px; padding: 0px; text-align: center; visibility: hidden; z-index: 1; position: absolute; left: 0px; top: 0px; width: 800px; height: 600px; opacity: 0;" id="img_0_1"><img alt="" style="vertical-align:middle;border:0;height:600px;width:1000px" src="Freitag/Folie2.jpg"></div>

Leider, wird es bei mir in PHP mit dieser Codierung:

PHP-Code:

echo ' this.b_insert= function(){

        var b, thestylid, thez, thevis, slidehei;
        slidehei=(showcontr)?(pichei+25):(pichei); //add space for the controls
        var myhtml=\'<div style="width:"+picwid+ "px;height:" +slidehei+"px;" >\';
               myhtml+=\'<div style="position:absolute;width:"+picwid+"px;height:"+pichei+"px;">\';
        for(b=1;b<=emax;b++){
            thez=1;thevis=\'hidden\';
            if(b<=1) {thez=2; thevis=\'visible\';}
              myhtml+=\'<div id=\'img_\'+slideid+\'_\'+b+" \' style="font-size:0;height:"+pichei+"px;width:"+picwid+"margin:0;padding:0;text-align:center;visibility:"+thevis+";z-index:"+thez+";position:absolute;left:0;top:0;width:"+picwid+"px;height:"+pichei+"px;background-color:"+backgr+";\'>\';
                myhtml+=\'<img src=\' "+imges[(b-1)]+\'"  style="vertical-align:middle;border:0;height:600px;width:1000px" alt=""/></div>\';
        }  myhtml+=\'</div>\';    '



So Ausgegeben:

<div +pichei+"px;width:"+picwid+"margin:0;padding:0;text-align:center;visibility:"+thevis+";z-index:"+thez+";position:absolute;left:0;top:0;width:"+picwid+"px;heigh t:"+pichei+"px;background-color:"+backgr+";'="" style="font-size:0;height:" '="" slideid'_'+b+"="" id="img_">';
myhtml+='<img alt="" style="vertical-align:middle;border:0;height:600px;width:1000px" "="" src=" &quot;+imges[(b-1)]+"></div>


Ich hab es mit verschieden Lösungsansätzen ausprobiert, jedoch hat dies nicht zum erfolg geführt.


Gruß Rewa

vt1816 12.04.2013 12:25:05

AW: Diashow mit variablen Bildern in den Ordnern
 
Da musst Du wohl noch mal beim escapen Deiner ' bzw. " nacharbeiten.

Rewa 12.04.2013 15:01:38

AW: Diashow mit variablen Bildern in den Ordnern
 
Danke Schön schonmal für die hilfreichen Tipps :)

Aber langsam beschleicht mich das gefühl, dass dies nicht wirklich funktioniert.
Hier ein ganz einfacher Code, der aufzeigt was ich erreichen will, unzwar dass die JS-Variable
übernommen werden kann damit es im div-Tag verwendet werden kann.

PHP-Code:

<?php
echo '
<script type=\'text/javascript\'>
var picwid=\'200\';
var pichei=\'300\';
var my=\'div style="width:"+picwid\';
document.write(my);'
;

echo 
'picwid';

 echo 
'</script> '?>

Leider funktioniert das nicht da, das picwid, nicht als Variable erkennt, entweder läuft
da wirklich etwas beim escapen schief oder sonst irgendwas, weil ich sitz schon seit dem Mittag beim
escapen dran und hab noch keine annähernde lösung im petto.

Viele Grüße

Rewa

vt1816 12.04.2013 22:53:58

AW: Diashow mit variablen Bildern in den Ordnern
 
Zitat:

Zitat von Rewa (Beitrag 144845)
[..]
PHP-Code:

<?php
echo '
<script type=\'text/javascript\'>
var picwid=\'200\';
var pichei=\'300\';
var my=\'div style="width:"+picwid\';
document.write(my);'
;

echo 
'picwid';

 echo 
'</script> '?>


Mehrere Fehler, besser/richtig:
PHP-Code:

<?php

echo "
<script type='text/javascript'>
var picwid='200';
var pichei='300';
var my='div style=\"width:' + picwid + '\"';
document.write(my);"
;
echo 
"alert(picwid);";
echo 
"</script>";

?>


urvater 14.04.2013 16:40:29

AW: Diashow mit variablen Bildern in den Ordnern
 
Alternativ und meiner Meinung nach "schöner" würde ich dies so umsetzen:
PHP-Code:

        <?php
        $picwid 
200;
        
$pichie 300;
        echo 
'PHP-Wert einer Variablen<br />';
        
?>
        <script type='text/javascript'>
            var picwid='<?php echo $picwid?>';
            var pichei='<?php echo $pichei?>';
            var my='<div style="width:'+picwid+';border:solid 1px black">test</div>';
            document.write(my);
            alert('<?php echo $pichei?>');
        </script>


Rewa 15.04.2013 13:28:21

AW: Diashow mit variablen Bildern in den Ordnern
 
Danke euch für eure Hilfe, es hat genauso funktioniert :) :) und
es funktioniert alles einwandfrei und ohne probleme zumindest auf dem IE xD

Alle anderen Browser wollen irgendwie die dynamischen HTML-Tags nicht :P
aber das gehört glaub wo anders hin und nicht hier her :) :)

Danke nochmal :)

vt1816 15.04.2013 13:32:23

AW: Diashow mit variablen Bildern in den Ordnern
 
Zitat:

Zitat von Rewa (Beitrag 144853)
[..]

Alle anderen Browser wollen irgendwie die dynamischen HTML-Tags nicht :P
aber das gehört glaub wo anders hin und nicht hier her :) :)

Was sind dynamische HTML-Tags?
IE versucht jeden Schei.. darzustellen im Gegensatz zu allen anderen Browsern - die möchten schon fehlerfreien Code.

Hast Du mal versucht Deine Seiten zu validieren?

Rewa 15.04.2013 15:24:25

AW: Diashow mit variablen Bildern in den Ordnern
 
Ja, hab ich, ich hab leider kein fehler oder Problem entdecken können. Ich bekomm auch keinen Fehler bei FireBug angezeigt. Ich demonstrier mal mein Problem anhand eines kleinen Codes.

Code in index.php:

Code:

    function Textauswahl(StdAktuell,Wochentag)  {
 
  // werktags von 11:00 - 12:59  Uhr
  if (StdAktuell >=11 && StdAktuell <= 12){
        <?php include('Seite2.php'); ?>}
       
        // Rest
  else {
 <?php include('Seite1.php');?>}
 
 
 return ' ';

<head>
<body>
<div id="slideshow">  </div>
</body>
</html>
 }



Code seite1.php:

Code:


var divid="slideshow";


        this.b_insert= function(){
                var b, thestylid, thez, thevis, slidehei;
                var myhtml='<div style=\"width:' + picwid + 'px;height:'+slidehei+'px\">';
                          myhtml+='<div style=\"position:absolute;width:'+picwid+'px;height:'+pichei+'px;\">';
                for(b=1;b<=emax;b++){
                        thez=1;thevis='hidden';
                        if(b<=1) {thez=2; thevis='visible';}
                          myhtml+='<div id=\"img_'+slideid+'_'+b+'\" style=\"font-size:0;height:'+pichei+'px;width:'+picwid+'margin:0;padding:0;text-align:center;visibility:'+thevis+';z-index:'+thez+';position:absolute;left:0;top:0;width:'+picwid+'px;height:'+pichei+'px;background-color:'+backgr+'\">';
                                myhtml+='<img src=\"'+imges[(b-1)]+'\"  style=\"vertical-align:middle;border:0;height:600px;width:1000px\" alt=\" \"></div>';
                }
                          myhtml+='</div>';

document.getElementById(divid).innerHTML=myhtml;


Ich weiß nicht wieso der Mozilla bzw. andere Browser das Element in der Elementid nicht erkennen.

Eine frühere Lösung von mir Ohne die Einbindung von Ordnerstrukturen und PHP, hatte auch erst in Firefox funktioniert, nach dem ich dass eingefügt hatte:
Code:

<iframe src="dia.html"> </iframe>
code dia.html
Code:

<head>
<script type="text/javascript" src="jsdia.js"> //gleicher js-code wie in seite1.php
</head> <body> <div id="slideshow"> </div>


Wie erwähnt ich musst es in der vorherigen Version ohne PHP, auch ein wenig ums eck denken
um es in Firefox erkennbar zu machen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 03:23:30 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.