preload images ajax jquery php

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
mgiota
Δημοσιεύσεις: 190
Εγγραφή: 15 Σεπ 2009 13:11
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

preload images ajax jquery php

Δημοσίευση από mgiota » 06 Αύγ 2010 02:11

Καλησπέρα,


έκανα ένα site με ajax, jquery και php και όλα φαίνεται να λειτουργούν μια χαρά, έχω όμως της εξής απορία:

Κάνοντας κλικ σ'ένα μενού φορτώνει με ajax και jquery σε μια περιοχή το αντίστοιχο κείμενο και οι αντίστοιχες φωτογραφίες. Σ'αυτήν την περιοχή χρησιμοποίησα το jscrollPane, όμως είχα πρόβλημα γιατί δεν προλάβαινε να φορτώσει όλες τις φώτο, οπότε δεν υπολόγιζε σωστά το ύψος και το scroll δεν εμφανιζόταν καν, παρά μόνο στο 2ο κλικ.

Αυτό που έκανα και έλυσε το πρόβλημα είναι να κάνω preload όλες τις images στο body onload, δε νομίζω όμως να είναι και η πιο ιδανική λύση, γιατί οι φώτο που φορτώνονται είναι γύρω στις 100 (κοντά στο 1MB). Το έχω ελέγξει σε διάφορους υπολογιστές και δεν αργεί να φορτώσει, αν όμως προστεθούν και άλλες φώτο τι θα γίνει;

Αυτό που θέλω στην ουσία είναι να κάνω preload τις φωτογραφίες του μενού που κάνω κλικ. Επειδή όμως δεν μπορώ να περάσω στην php (server side) το id της κατηγορίας στην οποία έκανε κλικ ο χρήστης (client side), αυτό θα πρέπει να γίνει με ajax.

Ξεκίνησα να το κάνω με τον εξής τρόπο:

--Σε μενού μου έδωσα ένα attribute cat
--Στο κλικ του μενού πήρα την τιμή αυτού του attribute και το έστειλα με ajax σε μια php σελίδα
--Σ' αυτήν την php σελίδα έβαλα τον κώδικα για το image proloading ως εξής:

<SCRIPT LANGUAGE = JAVASCRIPT>

if (document.images)
{

<?php

$catid=$_POST['catid'];
$result=$mysqli->query("SELECT * FROM articles_photo WHERE idarticles=".catid."");
$num_results=$result->num_rows;
$n=0;
while($myrow=$result->fetch_object()){
$array[$n]['photo_name']=$myrow->photo_name;?>
img<?php echo $n;?> = new Image();
img<?php echo $n;?>.src = "images/article_photos/thumbnails/thumb_<?php echo $array[$n]['photo_name'];?> ";
<?php
$n++;
}
?>
}


</SCRIPT>

Ύστερα από αυτό το σημείο δεν ξέρω τι να κάνω. Στο success του ajax δεν ξέρω τι να γράψω!
success: function(response) {

??????

}


Είναι κάτι απλό που πρέπει να γράψω, ή μήπως έτσι πως τα χω σκεφτεί δε γίνεται; Έχει να προτείνει κάποιος κάτι;

mgiota
Δημοσιεύσεις: 190
Εγγραφή: 15 Σεπ 2009 13:11
Τοποθεσία: Θεσσαλονίκη
Επικοινωνία:

preload images ajax jquery php

Δημοσίευση από mgiota » 09 Αύγ 2010 02:09

καμία ιδέα?

billiaswhs
Δημοσιεύσεις: 346
Εγγραφή: 11 Νοέμ 2004 00:29
Επικοινωνία:

preload images ajax jquery php

Δημοσίευση από billiaswhs » 09 Αύγ 2010 14:25

κατα αρχή το script της jquery πρέπει να είναι μέσα

$(document).ready(function()
{



});

ώστε να αρχίσει να λειτουργεί το javascript αφού φωρτωθεί όλη η σελίδα
και το η συνάρτηση του ή άλλες σχετικές που είναι π.χ. η .ajax ή .postκτλ?

milen
Δημοσιεύσεις: 8
Εγγραφή: 25 Μάιος 2009 19:13
Τοποθεσία: Bulgaria

preload images ajax jquery php

Δημοσίευση από milen » 12 Αύγ 2010 00:52

1. Kaneis to .php arxeio , omos xoris tin arxi :
<SCRIPT LANGUAGE = JAVASCRIPT>

if (document.images)
{,
kai xoris to telos: } </SCRIPT>

As poume oti to onomazeis photos.php

2.Ean exeis to menou kapos etsi:
<ul>
<li>Photo 1</li>
<li>Photo 2</li>
</ul>,

mporeis na to kaneis os eksis:

<ul>
<li onclick="return getPhoto(1)">Photo 1</li>
<li onclick="return getPhoto(1)">Photo 2</li>
</ul>

kai meta to jQuery ajax function:

<SCRIPT LANGUAGE = JAVASCRIPT>
function getPhoto(id){
$.ajax({
url:"/photos.php",
type: "POST",
data:{catid : id},
success: function(photo){
$('#to_simeio_pou_emphanizoun_ta_photos').html(photo);
}
return false;
});
}
</SCRIPT>

'#to_simeio_pou_emphanizoun_ta_photos' - auto eine to ID tou DIV pou emphanizoun oi ikones. Ean den exai id, tote kane.

Sorry gia ta latinika, apla ksenos eimai, kai kalitera etsi para na ksekiniso me ta ellinika kai tote tipota den tha me katalavete :)

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες