Avatar billede sonic_86 Nybegynder
18. april 2003 - 01:43 Der er 20 kommentarer og
1 løsning

Skal skifte billede uden af opdatere siden?

Hej
Jeg henter billeder via denne kode:
$query = mysql_query("SELECT *, RAND() AS random from scooter_billeder where scooter_id = '$id' ORDER BY random LIMIT 1") or die ("Fejl X: ".mysql_error());

Men hvordan laver man så den selv skifter mellem de billeder der er uden at opdatere siden og sætte det i frame?
Avatar billede Slettet bruger
18. april 2003 - 01:53 #1
<html>
<head>
</head>
<body onload="document.getElementById('randomimg').src=randompicture();setInterval('document.getElementById(\'randomimg\').src=randompicture();',1000);">
<script language=javascript>
function randompicture()
{
    var pictures = new Array("billed1.gif", "billed2.gif", "billed3.gif");
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
<img src="" id="randomimg"/>
</body>
</html>
Avatar billede sonic_86 Nybegynder
18. april 2003 - 02:16 #2
Jeg kan godt få koden til at virke men ikke med php'en nogle der kan hjælpe?

$query = mysql_query("SELECT * FROM scooter_billeder where scooter_id = '$id' ORDER BY id DESC") or die ("Fejl X: ".mysql_error());
if (mysql_num_rows($query) == '0'){
    $pic = '<center><b><font face="Verdana" style="font-size: 14px;">Ingen billeder af denne scooter!!</font></b></center>';
} else {
while($row = mysql_fetch_array($query)) {
    $billeder = $row['URL'];
    $scooter_id = $row['scooter_id'];
    $pic = '<center><a href="'.$billeder.'"><img border="1" src="'.$billeder.'" style="border: 1px solid #000000" width="270" height="210"></a><br><a href="scooter_billeder.php?id='.$id.'"><font face="Verdana" style="font-size: 11px;">Flere Billeder</font></a></center>';
}
}
Avatar billede sonic_86 Nybegynder
18. april 2003 - 11:34 #3
Slet ikke en der kan sætte det sammen?
Avatar billede Slettet bruger
18. april 2003 - 12:51 #4
<script language=javascript>
<?php
$query = mysql_query("SELECT * FROM scooter_billeder where scooter_id = '$id' ORDER BY id DESC") or die ("Fejl X: ".mysql_error());
if (mysql_num_rows($query) == '0'){
echo    "var pictures = new Array(\"STANDARTBILLEDE.GIF\")";
} else {
$pictures = array();
while($row = mysql_fetch_array($query))
{
    $pictures[] = "\"".$row['URL']."\"";
}
$pictures = @implode(",",$pictures);
echo    "var pictures = new Array(".$pictures.");";
}
?>
function randompicture()
{
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
Avatar billede sonic_86 Nybegynder
18. april 2003 - 18:29 #5
Kan ikke få det til at virke den kommer ikke med nogle fejl den viser kun et X som billede

det er sådan jeg har lavet det:

<script language=javascript>
<?php
include('config.php');
$id=intval($_GET['id']);
$query = mysql_query("SELECT * FROM scooter_billeder where scooter_id = '$id' ORDER BY id DESC") or die ("Fejl X: ".mysql_error());
if (mysql_num_rows($query) == '0'){
echo    "var pictures = new Array(\""STANDARTBILLEDE.GIF\")";
} else {
$pictures = array();
while($row = mysql_fetch_array($query))
{
    $pictures[] = "\"".$row['URL']."\"";
}
$pictures = @implode(",",$pictures);
echo    "var pictures = new Array(".$pictures.");";
}
?>
function randompicture()
{
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
<img src="" id="randomimg"/>
Avatar billede Slettet bruger
18. april 2003 - 18:31 #6
hmmmm... send mig lige det output du får i html....
Avatar billede sonic_86 Nybegynder
18. april 2003 - 18:44 #7
<script language=javascript>
var pictures = new Array("/billeder/DSC00002.jpg","billeder/DSC00001.jpg");function randompicture()
{
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
<img src="" id="randomimg"/>


Skal lige spise er tilbage om ca. 20 min
Avatar billede Slettet bruger
18. april 2003 - 19:20 #8
Ret linien
echo    "var pictures = new Array(".$pictures.");";
Til
echo    "var pictures = new Array(".$pictures.");\n";

Hvis det ikke virker efter det. Så skyldes det at dine stier billeder/DSC00001.jpg og /billeder/DSC00002.jpg ikke fører hen til dine billeder!?
Avatar billede sonic_86 Nybegynder
18. april 2003 - 20:42 #9
Der er igen fejl i billedernes url's de virke problemet er at hvis man højere klikker på Egenskaber -> Adresse: [URL] der står der ikke nogle af de adresser som står i var pictures = new Array
Avatar billede sonic_86 Nybegynder
18. april 2003 - 20:45 #10
Kan det være fordi at i den kode med php i ser html outputtet sådan ud:

<script language=javascript>
var pictures = new Array("STANDARTBILLEDE.GIF")function randompicture()
{
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
<img src="" id="randomimg"/>

Og i den normal (uden php koder) ser den sådan ud:

<body onload="document.getElementById('randomimg').src=randompicture();setInterval('document.getElementById(\'randomimg\').src=randompicture();',1000);">
<script language=javascript>
function randompicture()
{
    var pictures = new Array("billed1.gif", "billed2.gif", "billed3.gif");
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
<img src="" id="randomimg"/>
Avatar billede sonic_86 Nybegynder
18. april 2003 - 22:21 #11
Ikke nogle der kan rette den fejl?
Avatar billede Slettet bruger
19. april 2003 - 05:07 #12
Grunden til at der står:
var pictures = new Array("STANDARTBILLEDE.GIF")
Er fordi dit sql-kald fejler! Der bliver ikke fundet nogen rækker til de angivne kriterier:
SELECT * FROM scooter_billeder where scooter_id = '$id' ORDER BY id DESC
Avatar billede sonic_86 Nybegynder
19. april 2003 - 23:08 #13
Nej der er ingen fejl via at få fat i billederne har også prøvet at slettet where scooter_id = '$id' men der komme ingen billeder.
Avatar billede Slettet bruger
19. april 2003 - 23:39 #14
Ok,
Og i det tilfælde hvilket html output får du så?
Eventuelt så prøv at ændre "where scooter_id = '$id'" til where "1"
Så længe der står:
var pictures = new Array("STANDARTBILLEDE.GIF")
i html outputtet skyldes det, at der ikke kommer nogen rækker fra dit sql-kald!
Avatar billede sonic_86 Nybegynder
21. april 2003 - 00:16 #15
Det her stå i html outputtet:

<script language=javascript>
var pictures = new Array("http://www.mopedpower.dk/galleriet/scootere/aprilia_sonic/elsborgs_sonic/billeder/DSC00002.jpg","http://www.mopedpower.dk/galleriet/scootere/aprilia_sonic/elsborgs_sonic/billeder/DSC00001.jpg");
function randompicture()
{
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
<img src="" id="randomimg"/>
Avatar billede Slettet bruger
21. april 2003 - 01:54 #16
Og hvad står der så i bodytagget???
Avatar billede sonic_86 Nybegynder
21. april 2003 - 12:42 #17
Der er ikke mere.

Denne kode som du har lavet med php har der ikke været noget <body bla bla>
Som der er ved den uden php koderne.
Avatar billede Slettet bruger
21. april 2003 - 12:44 #18
Bare sørg for at bodytagget ser nogenlunde ud som nedenunder! Så skulle det gerne virke!

<body onload="document.getElementById('randomimg').src=randompicture();setInterval('document.getElementById(\'randomimg\').src=randompicture();',1000);">
Avatar billede sonic_86 Nybegynder
21. april 2003 - 12:56 #19
Nu dur det! der er bare et lille problem den henter alle billederne ind før den bedynder at skifte mellem dem.

Det er jo bare ikke så fedt for dem der har 56K eller ISDN så skal de vente mange min. før den viser billederne.
Hvis nu du får 40 points mere kan du så ikke lave så i mellemtide at billederne loades så skal den skrive "Billederne hentes dette kan tage langt tid at efter hvilken linie du har"
Og først efter alle sammen er hentet skal den vise billederne

Koden til så det virker:
<body onload="document.getElementById('randomimg').src=randompicture();setInterval('document.getElementById(\'randomimg\').src=randompicture();',3000);">
<script language=javascript>
<?php
include('config.php');
$id=intval($_GET['id']);
$query = mysql_query("SELECT * FROM scooter_billeder ORDER BY id DESC") or die ("Fejl X: ".mysql_error());
if (mysql_num_rows($query) == '0'){
echo    "var pictures = new Array(\"STANDARTBILLEDE.GIF\")";
} else {
$pictures = array();
while($row = mysql_fetch_array($query))
{
    $pictures[] = "\"".$row['URL']."\"";
}
$pictures = @implode(",",$pictures);
echo "var pictures = new Array(".$pictures.");\n";
}
?>
function randompicture()
{
    return pictures[Math.floor((Math.random()*pictures.length))];
}
</script>
<img src="" width="270" height="210" id="randomimg"/>
</body>
Avatar billede Slettet bruger
21. april 2003 - 12:59 #20
Den henter et billede af gangen... Men da intervallet er 3 sekunder vil jeg tror at den når at skifte mellem alle billederne før det første er hentet...
Prøv at søg på preload her på eksperten... så finder du masser af løsninger til det du søger!
Avatar billede sonic_86 Nybegynder
21. april 2003 - 13:01 #21
Ok mange tak!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester