Επιλογή image από select menu (PHP)

programming, tutorials / tips - 16.03.2008 14:27 - 3 σχόλια

downloadΕπιλογή image από select menu (PHP)Επειδή με παίδεψε, και επειδή θεωρώ ότι είναι χρήσιμο για ενσωμάτωση σε CMS που παραδίδονται στον πελάτη ώστε να κάνει μόνος του τα update του web site.

Σενάριο
Θέλουμε να αποθηκεύουμε σε μια βάση δεδομένων MySQL, το όνομα αρχείου μιας φωτογραφίας που θα συνοδεύει την εκάστοτε εμφάνιση του record.

Επιλογή image από select menu (PHP)

Τρόπος Επιλογής Φωτογραφίας
Έχουμε ανεβάσει τις φωτογραφίες (μέσω FTP ή μέσω ενός upload script) στο folder του server.

Επιλογή image από select menu (PHP)

Με PHP εμφανίζουμε τα ονόματα των αρχείων από το συγκεκριμένο folder, και με την επιλογή κάποιου αρχείου, εμφανίζεται η φωτογραφία με χρήση javascript.

 

<select name=»photo» onChange=»previewPic(this)»>
<?php
if ($handle = opendir(‘photos/’)) {
while (false !== ($file = readdir($handle))) {
if ($file != «.» && $file != «..») { ?>
<option value=»<? echo $file ?>»><? echo $file ?></option>
<?
}
}
closedir($handle);
}
?>
</select>

Πριν κάνουμε αυτό έχουμε φροντίσει να περάσουμε όλες τις φωτογραφίες του folder σε ένα javascript function ώστε να γίνεται το preview.

 

<script language=»JavaScript»>
function previewPic(sel) {
document.previewpic.src=»photos/» + sel.options[sel.selectedIndex].value;
}
function showPic(sel) {
images = new Array();
<?php
if ($handle = opendir(‘photos/’)) {
while (false !== ($file = readdir($handle))) {
if ($file != «.» && $file != «..») { ?>
images[1] = «<? echo $file ?>»;
window.location.href = images[sel.selectedIndex+1];
<?
}
}
closedir($handle);
}
?>
}
</script>

3 σχόλια


  1. Giorgos
    17:05 - 17.03.2008

    Απόστολε επέτρεψε μου να το δώσουμε και σε ASP γιατί με με παίδεψε και εμένα.

    Φωτογραφία Προϊόντος

    <option value=»">

    var ie4=document.all
    var ns6=document.getElementById
    var tempobj=document.dynamicselector.productimage
    if (ie4||ns6)
    var contentobj=document.getElementById? document.getElementById(«dynamic3″): document.all.dynamic3
    function generateimage(which){
    if (ie4||ns6){
    contentobj.innerHTML=’Loading image…’
    contentobj.innerHTML=»}
    else if (document.layers){
    document.dynamic1.document.dynamic2.document.write(»)
    document.dynamic1.document.dynamic2.document.close()
    }
    else
    alert(‘You need NS 4+ or IE 4+ to view the images!’)
    }

    function generatedefault(){
    generateimage(tempobj.options[tempobj.options.selectedIndex].value)
    }

    if (ie4||ns6||document.layers){
    if (tempobj.options.selectedIndex!=-1){
    if (ns6)
    generatedefault()
    else
    window.onload=generatedefault
    }
    }

    Το κάνω copy paste κατευθείαν από prject όποιος το χρησιμοποιήσει θα πρέπει να προσαρμόσει τις διαστάσεις και class ανάλογα με τα δικές του ανάγκες.

  2. apostolos
    08:53 - 18.03.2008

    @ Giorgos

    σωστός!

  3. Giorgos
    13:56 - 18.03.2008

    Ορθή επανάληψη !!

    <option value=»">

    var ie4=document.all
    var ns6=document.getElementById
    var tempobj=document.dynamicselector.productimage
    if (ie4||ns6)
    var contentobj=document.getElementById? document.getElementById(«dynamic3″): document.all.dynamic3
    function generateimage(which){
    if (ie4||ns6){
    contentobj.innerHTML=’Loading image…’
    contentobj.innerHTML=»}
    else if (document.layers){
    document.dynamic1.document.dynamic2.document.write(»)
    document.dynamic1.document.dynamic2.document.close()
    }
    else
    alert(‘You need NS 4+ or IE 4+ to view the images!’)
    }

    function generatedefault(){
    generateimage(tempobj.options[tempobj.options.selectedIndex].value)
    }

    if (ie4||ns6||document.layers){
    if (tempobj.options.selectedIndex!=-1){
    if (ns6)
    generatedefault()
    else
    window.onload=generatedefault
    }
    }

    **διαστάσεις,paths και css ανάλογα με τις δικές σας ανάγκες.

Σχολιασμός

σχόλιο