10. juli 2003 - 21:13Der er
14 kommentarer og 1 løsning
while loop stopper ved klik på noget af det der er printet - why?
Jeg har et database kald (MYSQL) som jeg printer ud på en side. Det drejer sig om en masse thumbnails der fungerer som links.
Jeg har (selvfølgelig) sat php'en til at loope en print sætning sålænge der er resultater fra den pågældende database forespørgsel.
Nu er mit problem at hvis den skal printe eks. 100 thumbnails/links og jeg så klikker på et link mens den "printer" eks. når den har printet de 20 - ja så stopper den med at hive thumbnails ud...min while stopper altså så snart linket åbner et nyt vindue...
while koden er her:
<?php $conn = mysql_connect("host","db","password") or die(mysql_error()); mysql_select_db("db") or die(mysql_error());
$resultat = mysql_query("SELECT * FROM listen WHERE lib = '$lib'"); $antal = mysql_numrows($resultat);
while ($raekke = mysql_fetch_row($resultat)) {
($i%2 ? $color="#EFEFEF" : $color="#FFFFFF");
//thumbnail som link til stortbillede der åbnes i nyt vindue.... printf("<span>%s</span>\n", ' <a href="java script:void(0)" onclick="open(\'picture.php?filnavn='.$raekke[1].'&lib='.$lib.'\',\'popup\',\'toolbar=0,location=0,scrollbars=yes,top=50,left=50,directories=0,status=0,menubar=0,resizable=1,\')"><img src="'.$raekke[2].'thumb/'.$raekke[1].'" border="0" class="image"></a><a href="java script:void(0)" onclick="open(\'insert_fav.php?listenuser_id='.$listenuser_id.'&pass='.$pass.'&listen_id='.$raekke[0].'\',\'popup\',\'toolbar=0,location=0,scrollbars=no,top=50,left=50,directories=0,status=0,menubar=0,resizable=0,width=200,height=100\')"><img src="favplus.gif" alt="tilføj til dine favoriter" width="15" height="15" border="0" class="imageikon"></a> ' );
$i = $i + 1; } echo "</td></tr></table>"; ?>
Er der nogen der kan fortælle mig hvorfor den stopper loopet når der klikkes på et link....og mest af alt...er der nogen der kan afhjælpe problemet...
Det er jo klart den stopper, du sætter den jo pludseligt til noget andet, det kan du ikke ændre på, du må lade den loade dem alle sammen.
Du kunne måske afhjælpe den lange laod tid ved at dele bilelderne op på flere sider f.eks. 10 billeder på vher side, også kunne man skifte mellem disse sider, et sådan script kan jeg hjælpe dig med.
$query = mysql_query ("SELECT * FROM tabel ORDER BY id DESC limit $visfra, $prside"); // Dit database udtræk while ($row = mysql_fetch_array($query)) { echo $row['id']."<br>"; }
$antal = mysql_num_rows(mysql_query("SELECT * FROM tabel"));
Jeg kan godt se at man sætter browseren igang med noget andet ved at åbne et nyt vindue. Men der må da findes noget kode der får den til at forsætte med det den nu har gang i....eller også noget der forhinderer den i at vise de enkelte thumbnails efterhånden som de loader, og bare venter til hele siden er loadet....
ideen med 10 på hver side, dur desværre ikke...men ellers tak for svaret
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Avanceret preloader</title> <script type="text/javascript"> bill = new Array("billede1.jpg", "billede2.jpg", "billede3.jpg", "billede4.jpg", "billede5.jpg"); //Billederne. Listen kan sagtens forstørres/formindskes.
i = -1; nsImg = new Image(); tbts = 0;
function preload() { img = (document.all) ? document.images["pimg"] : nsImg; if (++i != 0 && document.all) tbts += Math.round(img.fileSize / 1024); prct = Math.round(i / bill.length * 100); document.getElementById("pl").innerHTML = prct + "%<br />" + ((document.all) ? "Kilobytes: " + tbts + "<br />" : "") + i + " ud af " + bill.length + " billeder loadet"; document.getElementById("plbar").style.width = prct + "%"; if (i >= bill.length) efterPreload(); else { img.src = bill[i]; if (!document.all) tjek(); } }
function tjek() { if (nsImg.complete) preload(); else setTimeout(tjek, 100); }
function efterPreload() { //Her defineres, hvad der skal ske, efter billederne er loadet //Hvis siden skal skifte, fjerner du bare de to slashes herunder: //self.location.href = "din_side.html"; } </script> </head> <body> <h2>Avanceret preloader</h2> <div style="width: 200px; height: 16px; border: 1px solid black; background-color: #CCCCCC; font-size: 0px;"> <div style="width: 0%; height: 100%; background-color: #6699CC; font-size: 0px;" id="plbar"></div> </div> <span id="pl" style="font-family: Verdana; font-size: 60%;"></span><br /> <img src="" name="pimg" style="display: none;" onLoad="preload();" /> <script type="text/javascript"> preload(); </script> </body> </html>
mht at preloade billederne kan jeg huske at jeg ikke umiddelbart fik nok "bonus" ud af det. (det er en side jeg ikke just udvikler på hverdag, så der går desværre lidt tid mellem jeg kigger på det.)
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.