Array maken in php

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
ik heb een code gemaakt. en ik wil de Array vullen door een php bestand

Dit dat ik me uit gedacht:
Code:
return document.getElementById(objx)
else if (document.all)
return document.all[objx]
}
var start=0;
</script>
<?
include ("test4.php");
?>
<script type="text/javascript">
function show(slide){
	if (slide == 'false')
	{
	start++;
	if (start > image.length)
	{
	start = 1;

en de php file is
PHP:
<?
	$url = "image/studio";
    $dir = opendir($url);

    // Haal de gegevens uit dir 
x = 1;
echo '<script type="text/javascript">';
    while (false !== ($file = readdir($dir))) { 
        if (($file !== ".") and ($file !== "..")) { 
        list($filename, $ext) = explode(".", $file); 
if ($ext == "jpg" or $ext == "png" or $ext == "gif") {
	
                echo 'image['.x.'] = new Array ("'.$url.'/'.$file.'", "test = '.x.'");' ; 
            } 
        } 
	x++;
}
echo '</script>';
?>

wat doe ik fout???? zou toch moeten lukken!
 
Laatst bewerkt:
Variabelen in PHP worden voorafgegaan door een dollar-teken...
 
Nu heb ik de code als volgd aan gepast
Code:
 <script type="text/javascript">

 function getobject(objx){
if (document.getElementById)
return document.getElementById(objx)
else if (document.all)
return document.all[objx]
}
var start=0;

image = new Array(); //--->array aanmaken voor de foto's

</script>
<?
	$url = "image/studio";
    $dir = opendir($url);

    // Haal de gegevens uit dir 

$count = 1;
echo ' <script type="text/javascript">';
    while (false !== ($file = readdir($dir))) { 
	
        if (($file !== ".") and ($file !== "..")) { 
		
        list($filename, $ext) = explode(".", $file); 
if ($ext == "jpg" or $ext == "png" or $ext == "gif") {
                echo 'image['.$count.'] = new Array ("image/studio/'.$file.'", "test = '.$count.'");'; 
			$count++;
            }
        } 
}
echo '</script>';
?> 
 <script type="text/javascript">
function show(slide){
	if (slide == 'false')
	{
	start++;
	if (start > image.length)
	{
	start = 1;
	}
	getobject("pic").width='520';
	getobject("pic").height='346';
	getobject("pic").src = image[start][0];
	getobject("kopschrift").innerHTML = image[start][1];
	}
	else
	{
	start--;
	if (start < 1)
	{
	start = 6; 
	}
	getobject("pic").width='520';
	getobject("pic").height='346';
	getobject("pic").src = image[start][0];
	getobject("kopschrift").innerHTML = image[start][1];
	}
}
</script>
Maar nog steeds krijg ik een fout op de pagina.
en als ik de code zo :
PHP:
<?
	$url = "image/studio";
    $dir = opendir($url);

    // Haal de gegevens uit dir 

$x = 1;
    while (false !== ($file = readdir($dir))) { 
	
        if (($file !== ".") and ($file !== "..")) { 
		
        list($filename, $ext) = explode(".", $file); 
if ($ext == "jpg" or $ext == "png" or $ext == "gif") {
                echo 'image['.$x.'] = new Array ("image/studio/'.$file.'", "test = '.$x.'");'; 
			$x++;
            }
        } 
}

?>
dan krijg ik wel de juiste bestandennamen en nummering;

hoe kan dat nou, wat doe ik hier fout?
 
Heb je het ergens online staan? Als het een fout op de pagina is, kunnen we die er met FireBug waarschijnlijk wel uithalen.
 
Hier heb ik hem online staan. Ik heb al wel gezien dat in FF de array's op het scherm worden weergegeven.

Online test

Als je op de knop show Div klikt loopt het script nog, maar als je dan op next klikt voor de volgende foto,
dan loopt het fout!
 
Laatst bewerkt:
Ik zou eens beginnen met shorttags verwijderen, die worden door je server niet geparsed.

Verander dus <? in <?php
 
Nou <? vervangen door <?PHP

Maar dat scheelt nix. zeker niet in FF.

Als ik de echo "<script bla bla>" weg haal en echo "</script>"

dus eigenlijk de php binnen de javascript laat uitvoeren. dan klopt het scherm wel in FF, maar in IE komt een fout op de pagina
 
Laatst bewerkt:
Ah, ik merk het al. Sla je bestand eens op als index.php en niet index.htm
 
okey, gedaan!

Je Zus zeg, is dat alles!!!!

Zou je me kunnen vertellen waarom dit zo is?
 
Laatst bewerkt:
De array wordt nu goed gevuld.
[EDIT]
Had je edit niet gezien. Omdat de inhoud anders niet geparsed wordt. Dan wordt de inhoud "gewoon" naar de browser gestuurd.
[/EDIT]
 
Laatst bewerkt:
ja, hij werkt nu wel in IE, maar in FF wordt alleen de Div gemaakt maar ik krijg niet de foto show ye zien!

Dus ik kan het beste mijn index pagina een php exetentie geven.
 
Laatst bewerkt:
Ik zou eerst eens even zorgen dat je pagina HTML-valid is (er mag bijvoorbeeld alleen nog </html> na </body> staan.

Daarnaast zul je nog wel de functie moeten aanroepen om de foto weer te geven.
 
maar dit is mijn index.HTML

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <TITLE>Div's leren besturen JAVA</TITLE>
 <style type="text/css">
 /* afgeronde hoeken */
.arhoeken {background:transparent; width:200px; /* boxbreedte */}
.arb1, .arb2, .arb3, .arb4 {display:block; overflow:hidden; background:transparent; font-size:1px;}
.arb1, .arb2, .arb3 {height:1px;}
.arb2, .arb3, .arb4 {background:white; border-left:1px solid #000000; border-right:1px solid #000000;}
.arb1 {margin:0 5px; background:white;}
.arb2 {margin:0 3px; border-width:0 2px;}
.arb3 {margin:0 2px;}
.arb4 {height:2px; margin:0 1px;}
.arboxinhoud {
  display:block; 
  background:white; 
  border:0 solid #000000; 
  border-width:0 1px;
  text-align: center;
  font-family: Arial;
  font-size: 12px;
  font-weight: bold;
  padding: 5px;
}

.div {
		filter: alpha(opacity=70); // IE syntax
			opacity: .70; /* De rest*/;
		text-align: center;
		color: white;
}
.style10 {
	background-color: #FFFFFF;
	font-family: "Agent Orange";
}
.style11 {
	color: black;
	text-align: center;
	background-color: white;
	font-family: "Agent Orange";	
}
</style>

 <script type="text/javascript">

 function getobject(objx){
if (document.getElementById)
return document.getElementById(objx)
else if (document.all)
return document.all[objx]
}
var start=0;

image = new Array(); //--->array aanmaken voor de foto's


<?PHP
	$url = "image/studio";
    $dir = opendir($url);

    // Haal de gegevens uit dir 

$count = 1;

    while (false !== ($file = readdir($dir))) { 
	
        if (($file !== ".") and ($file !== "..")) { 
		
        list($filename, $ext) = explode(".", $file); 
if ($ext == "jpg" or $ext == "png" or $ext == "gif") {
                echo 'image['.$count.'] = new Array ("image/studio/'.$file.'", "test = '.$count.'");'; 
			$count++;
            }
        } 
}

?> 

function show(slide){
	if (slide == 'false')
	{
	start++;
	if (start > image.length)
	{
	start = 1;
	}
	getobject("pic").width='520';
	getobject("pic").height='346';
	getobject("pic").src = image[start][0];
	getobject("kopschrift").innerHTML = image[start][1];
	}
	else
	{
	start--;
	if (start < 1)
	{
	start = 6; 
	}
	getobject("pic").width='520';
	getobject("pic").height='346';
	getobject("pic").src = image[start][0];
	getobject("kopschrift").innerHTML = image[start][1];
	}
}

function getXMLHTTP() { //fuction to return the xml http object
   
    var xmlhttp=false;  
    try {
        xmlhttp=new XMLHttpRequest();
    } catch(e) {        
        try {           
            xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
        } catch(e) {
            try{
                xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
            } catch(e1) {
                xmlhttp=false;
            }
        }
    }
            
    return xmlhttp;
}
 
function link(strURL) {

  var req = getXMLHTTP(); // fuction to get xmlhttp object

  if (req) {

    req.onreadystatechange = function() {

      if (req.readyState == 4) { //data is retrieved from server

        if (req.status == 200) { // which reprents ok status     
        
          document.getElementById('id').innerHTML=req.responseText;
        } else { 
          alert("There was a problem while using XMLHTTP:\n");
        }
      }            
    }        
    req.open("GET", strURL, true); //open url using get method
    req.send(null);

  }
}
 
function toggle(id,x,y)
{
// ---- hoogte en breedte 
var ie=document.all && !window.opera // 
var iebody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body 

var x =(ie)? iebody.clientWidth : window.innerWidth // ----scherm breedte
var y=(ie)? iebody.clientHeight : window.innerHeight // ----scherm hoogte

x
   var obj = document.getElementById(id);
   if(obj.style.visibility == 'visible')
   {
      toggleObject(obj, true,x-3,y-3);
   }else{
      toggleObject(obj, false,x-3,y-3);
	  }
}
 

var inc = 10;

function toggleObject(obj,close,x,y)
{
   var w, h, go;

   w  = parseInt(obj.style.width);
   h  = parseInt(obj.style.height);
   go = false;
 
 
   if(close === false)
   {
      obj.style.visibility = 'visible';
 
      if(w < x)
      {
         obj.style.width = w + inc + 'px';
         go = true;
      }
      if(h < y)
      {
         obj.style.height = h + inc + 'px';
         go = true;
      }
	  if( x == w) 
	  { 
	  link('test5.php');
	}
   }else{
		obj.innerHTML = "";
      if(w > 0)
      {
         obj.style.width = w - inc + 'px';
         go = true;
      }
      if(h > 0)
      {
         obj.style.height = h - inc + 'px';
         go = true;
      }
   }
 
   if(go === true)
   {
      var f = function(){ toggleObject(obj, close,x,y); }
      setTimeout(f, 5);
   }else{
      if(close === true)
      {
         obj.style.visibility = 'hidden';
      }
   }
 
}
</script>
</HEAD>
<BODY>

<h1>Div sturen leren</h1>
<form id="form" >
			<input id="x" type="text" value= "test">
	   		<input type="button" value="Show DIV" onclick="toggle('id','600','150');">
</form>
<div class="div" style="position: absolute;  visibility: hidden; background-color: black; width: 0px; height: 0px; z-index: 1; left: 0px; top: 0px;" id="id">

</div>
<p>jfsakf;ajsf;jg;asf</p>
<p>&nbsp;</p>
<p>asdfhgasfgkasdv.sdv.c.sahgdlfglasdgfk;sdsfc;afh;oaysf;ysifkbv.xzc .nlxnofglwclxflsf</p>
</BODY>
</HTML>

en dit is de fotoshow PHP
PHP:
<br><br><br><br>
<div class="arhoeken" style="width: 580px; height: 118px;" align="center>
<b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b>
	<div class="arboxinhoud">
<table style="width: 550px" align="center">
	<tr>
		<td class="style11">
<SPAN id="kopschrift" style="font-family:'Cooper Black'; font-size:large">Foto 
show by Phobia</SPAN>
	</tr>
	<tr id="foto" class="style11" " width="520px" height="346px">
		<td>
		<img id="pic" align="center" src="image/logo.gif"></td>
	</tr>
	<tr>
		<td class="style11" align="center">
<input type="button" value="Prev" onclick="show('true')">
<input type="button" value="Sluit" onclick="toggle('id','600','150')">
<input type="button" value="Next" onclick="show('false')">
</td>
	</tr>
</table>
	</div>
<b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b>
</div>

Ik snap niet waarom dit dan niet goed kan zijn.
 
Kan wel zijn maar waar zie je dan ergens op je pagina een trigger voor de show-functie?
 
op regel 199 in de html code staat

link('test5.php');

daarmee wordt aan de geopende div de inhoud van test5.php toegevoegd.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan