[PHP + JS] vettore generato con PHP

neo996sps

Utente Attivo
31 Mag 2007
247
0
0
Trentino
Ciao a tutti,

ho un problema piuttosto assurdo in questo script:

Codice:
<script>
	var demoTabs;
	Event.observe(window, "load", function() {
		//Immagini
		 
    
    var images = [
			"./img/slide/1.jpg",
			"./img/slide/2.jpg",
			"./img/slide/3.jpg",
      "./img/slide/4.jpg"
		];  

		new Widget.Fader("defaultDemo", images);

		});
	</script>

dovrei generare il vettore images popolandolo con un while in php. Praticamente una cosa del genere:
PHP:
		<?php 
    $slide = mysql_query("SELECT * FROM foto LIMIT 10");
    while($exp_slide = mysql_fetch_array($slide))
{
    print("var images = ['".$exp_slide["foto"]."'];"); }    ?>

ma non funziona... mi sapreste dare un aiuto?
 
PHP:
$slide = mysql_query("SELECT * FROM foto LIMIT 10") or die (mysql_error());
 
ciao,

mi sono espresso male. Non è che mi si generi un errore, ma non funziona lo script perchè mi scrive in alto sulla pagina //Immagini
 
Come hai inserito il PHP all'interno del JS?

ho provato così:

PHP:
<script>
	var demoTabs;
	Event.observe(window, "load", function() {//Immagini
  </script>
		
		<?php 
    $slide = mysql_query("SELECT * FROM foto LIMIT 10") or die (mysql_error()); 
    print("<script>");
    while($exp_slide = mysql_fetch_array($slide))
    {print("var images = ['./img/slide/".$exp_slide["foto"]."'];"); }
    print("</script>");
    ?>
<script>
		new Widget.Fader("defaultDemo", images);

		});
	</script>
 
allora, ho provato a modificare come suggerito da alessandro e ora il mio codice output è così:

PHP:
  <script>
	var demoTabs;
	Event.observe(window, "load", function() { //Immagini
  var images = new Array();
  </script>
		
		<?php 
    $slide = mysql_query("SELECT * FROM foto LIMIT 10") or die (mysql_error()); 
    print("<script>");
    while($exp_slide = mysql_fetch_array($slide))
    {printf('images.push("./img/slide/%s");', $exp_slide['foto']);   }
    print("</script>");
    ?>
<script>
		new Widget.Fader("defaultDemo", images);

		});
	</script>

però tutt'ora non mi gira la slide
 
ciao
piccola osservazione,
PHP:
 <?php 
    $slide = mysql_query("SELECT * FROM foto LIMIT 10");
    while($exp_slide = mysql_fetch_array($slide))
{
    print("var images = ['".$exp_slide["foto"]."'];"); }    ?>
non ti restituisce
Codice:
<script>
	var demoTabs;
	Event.observe(window, "load", function() {
		//Immagini
    var images = [
			"./img/slide/1.jpg",
			"./img/slide/2.jpg",
			"./img/slide/3.jpg",
      "./img/slide/4.jpg"
		];  
		new Widget.Fader("defaultDemo", images);
		});
	</script>
ma, se non sbaglio
Codice:
<script>
	var demoTabs;
	Event.observe(window, "load", function() {
		//Immagini
    var images = ["./img/slide/1.jpg"];
    var images = ["./img/slide/2.jpg"];
    var images = ["./img/slide/3.jpg"];
    //eccetera
		];  
		new Widget.Fader("defaultDemo", images);
		});
	</script>
 
allora, ho provato a modificare come suggerito da alessandro e ora il mio codice output è così:

PHP:
  <script>
	var demoTabs;
	Event.observe(window, "load", function() { //Immagini
  var images = new Array();
  </script>
		
		<?php 
    $slide = mysql_query("SELECT * FROM foto LIMIT 10") or die (mysql_error()); 
    print("<script>");
    while($exp_slide = mysql_fetch_array($slide))
    {printf('images.push("./img/slide/%s");', $exp_slide['foto']);   }
    print("</script>");
    ?>
<script>
		new Widget.Fader("defaultDemo", images);

		});
	</script>

però tutt'ora non mi gira la slide

Perché apri e chiudi i delimitatori "<script>" annidandoli?
 
ciao
non so se è il js che non funzia (conosco molto poco js), ma se vuoi ottenere un js fatto come hai scritto all'inizio prova cosi

PHP:
<?php
echo <<< EOD
<script>
	var demoTabs;
	Event.observe(window, "load", function() {
    var images = [
EOD;
$slide = mysql_query("SELECT * FROM foto LIMIT 10");
$foto="";
while($exp_slide = mysql_fetch_array($slide)) {
	$foto.="\.img/slide/".$exp_slide["foto"]."\",\n";
	}
echo $foto;
echo <<< EOD
];  
		new Widget.Fader("defaultDemo", images);
		});
	</script>
EOD;
?>
mal che vada non funzia

p.s.
eventualmente prova nella riga
$foto.="\.img/slide/".$exp_slide["foto"]."\",\n";
a sostituire \n con <br>
$foto.="\.img/slide/".$exp_slide["foto"]."\",<br>";
 
Sono riuscito a risolvere incrociando vari suggerimenti. Ecco il codice finale:

PHP:
<?php
  print ("<script>	var demoTabs;
	Event.observe(window, 'load', function() {"); 
    $slide = mysql_query("SELECT * FROM foto LIMIT 10");
    print("var images = [");
    while($exp_slide = mysql_fetch_array($slide))
    {
     
    print("\"./img/slide/".$exp_slide["foto"]."\", ");
    
    
    }
    print("];");    
 print("new Widget.Fader('defaultDemo', images);});
	</script>");   
    ?>
 

Discussioni simili