[js+php]veranderen source plaatje na generen

Pagina: 1
Acties:

  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
ok ben nu al een hele tijd aan het kloten enzie door de bomen het bos niet meer.

stel ik heb een string laten we zeggen: e8dceab3d0382a7e91ccd3a724e5be9c een unieke md5 string. van dit plaatje wil ik een thumbnail maken met behulp van eenphp scriptje welke imagemagick gebruikt :) werkt allemaal perfect als ik
code:
1
[img]"/source/pic/e8dceab3d0382a7e91ccd3a724e5be9c?resize(200x200)"[/img]

gebruik (waarbij pic een php bestand is) dan duurt het even voordat de thumbnail getoond word. Logisch want het script moet runnen.

maar nu wil ik voordat dit gebeurd een plaatje laten zien, zo van ik ben aan het laden.

ik dacht ik laat eerst een soort van placer neerzetten voor het aantal foto's in de database met daaraan gekoppeld uiteraard een name="string" attribute.

hoe kan ik er nou voor zorgen dat eerst bv een 15-tal (of ieder ander willekeurig aantal afhankelijk van het geretouneerde results van de db) placers op de site komen te staan en dat daarna dmv JS de source van die dingen veranderd word naar: /source/pic/e8dceab3d0382a7e91ccd3a724e5be9c ????

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
$gebruiker = $_SESSION['archi_user_id'];
$sql = "SELECT * FROM archi_foto WHERE gebruiker_id ='$gebruiker' AND flag='0'";
$res = mysql_query($sql) or die(mysql_error());
$aantal_fotos = mysql_num_rows($res);
?>
<div id=tekst>
<?
while ($fotos = mysql_fetch_array($res)) {
        ?>
        [img]"source/pic/laden.gif"[/img]">
        <?
} ;
?>
</div>
<?
while ($fotos = mysql_fetch_array($res)) {
        ?>
        <script>
document.images['<?=$fotos['bestand']?>'].src = "source/pic/<?=$fotos['bestand']?>?resize(200x200)"
</script>
        <?
} ;


gezien waarschijnlijk de oplossing in het javascript ligt... toch maar geplaatst in W&G ipv PW

[ Voor 65% gewijzigd door hobbeldebobbel op 01-02-2005 01:57 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


  • Thijsmans
  • Registratie: Juli 2001
  • Laatst online: 15-05 22:53

Thijsmans

⭐⭐⭐⭐⭐ (5/5)

Je kunt PHP niet icm html gebruiken zoals jij dat doet op regel 9-15 :) De Html wordt nl. pas verstuurd als de PHP-meuk is gerund.

Wat jij zoekt, is een div die verdwijnt als het document klaar is met laden. Daarvoor moet je eens kijken naar het onload-event en css (display:none en block).

Overigens is er dacht ik ook een low-res property voor images, zie @ http://www.ida.net/users/pbmck/learn/40lowres.htm .

En als laatste optie kun je ook met javascript alle plaatjes inladen:

JavaScript:
1
2
3
4
5
6
7
8
imageArray = new Array('plaatje.jpg', 'plaatje.jpg' (...) );

for( i in imageArray )
{
    source = imageArray[ i ];
    img = new image();
    img.src = source;
}


Dan laadt javascript alle plaatjes al in de tpm-files, maar hij doet er nog niets mee :)

Privacy-adepten vinden op AVGtekst.nl de Nederlandse AVG-tekst voorzien van uitspraken en besluiten.


  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
Prammenhanger schreef op dinsdag 01 februari 2005 @ 12:00:
Je kunt PHP niet icm html gebruiken zoals jij dat doet op regel 9-15 :) De Html wordt nl. pas verstuurd als de PHP-meuk is gerund.
vandaar dat ik dus eerst met php de placeholders neerzet en daarna de src aanpas van het ding. kan dat dan niet??? onderaan de pagina (als de pagina nog niet uitgeladen is) de src veranderen?

het lowres gebeuren is volgens de door jou genoemde site 'slechts' een netscape/mozilla gebeuren..

[ Voor 11% gewijzigd door hobbeldebobbel op 01-02-2005 15:52 ]

hier zou een slimme opmerking kunnen staan
maar die staat er niet


  • hobbeldebobbel
  • Registratie: Februari 2001
  • Laatst online: 15-02-2023
ik heb het gevonden:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?
$gebruiker = $_SESSION['archi_user_id'];
$sql = "SELECT * FROM archi_foto WHERE gebruiker_id ='$gebruiker' AND flag='0'";
$res = mysql_query($sql) or die(mysql_error());
$aantal_fotos = mysql_num_rows($res);

$res2 = mysql_query($sql) or die(mysql_error());
$fotos2 = mysql_num_rows($res2);
?>


<?

while ($fotos = mysql_fetch_array($res)){ 
        ?>
        
            <a href="javascript:do_process('<?=$fotos['bestand']?>')"> [img]"source/pic/laden.gif"[/img]" ></a>
        
        
        <?

};
    
while ($fotos2 = mysql_fetch_array($res2)){ 
        ?>
        <script>
        document.getElementById("<?=$fotos2['bestand']?>").src = "source/pic/<?=$fotos2['bestand']?>?resize(200x200)";
        </script>
        <?

};

    ?>


zo doet ie het :)

hier zou een slimme opmerking kunnen staan
maar die staat er niet


  • prototype
  • Registratie: Juni 2001
  • Niet online

prototype

Cheer Bear

Hey Hobbeldebobbel,

bedenk je goed dat een md5 hash niet 'werkelijk' uniek is; voor elke md5 hash bestaan er enkele mogelijkheden om tot deze hash te komen. Nu is 't welliswaar nog maar de vraag in hoeverre je hier last van zult ondervinden :)
Wat je beter kan doen is uniqid() gebruiken, om werkelijk een unieke code te genereren. Meer informatie hier: http://be.php.net/manual/en/function.uniqid.php

[ Voor 14% gewijzigd door prototype op 02-02-2005 00:49 ]


  • Hagar
  • Registratie: Februari 2001
  • Laatst online: 14-10-2025

Hagar

Diabootic

ipv 2 calls naar mysql_query kan je ook mysql_data_seek($res, 0) gebruiken tussen de while loops.
Deze zet de interne pointer weer op row 0.

Nu ook zonder stropdas

Pagina: 1