Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][PHP] Zmiana obrazka poprzez pole wyboru
Forum PHP.pl > Forum > Przedszkole
atyll
Witam, mam problem. Otóż mam skrypt, który ładuje wszystkie obrazki z folderu i wrzuca je do combo boxa. Obok mam kod na obrazek i używając funkcji w JS showimage(), chciałbym, żeby po wybraniu pliku, zmieniał się obrazek. Niestety, coś mi nie wychodzi i nie mogę tego rozkminić.

Oto kod JS w headzie:
Kod
    <script language="javascript">
<!--

/*Combo Box Image Selector:
By JavaScript Kit (www.javascriptkit.com)
Over 200+ free JavaScript here!
*/

function showimage()
{
if (!document.images)
return
document.images.pictures.src=
document.mygallery.picture.options[document.mygallery.picture.selectedIndex].value
}
//-->
</script>


Kod combo boxa:
Kod
<?php
//specify path of directory
$dir = 'obrazki/';

//open directory
if ($handle = opendir($dir))
{
    //read each file
    while ($file = readdir($handle)) {
        //only get files of a particular type      
    
            //eliminate additional directories
            if ($file != "." && $file != "..")
            {                
                //store filename in array
                $option[] = $file;
            }            
        }
    //close directory
    closedir($handle);
    
    //create combo box
    $cbo = '<form name="mygallery">';
    $cbo = '<select name="picture" onChange="showimage()>';
    
    //create option for each file
    foreach($option as $key=>$val)
    {
        $cbo .='<option selected value="obrazki/'.$val.'">'.$val.'</option>';
    }
    
    //close combo box
    $cbo .= '</select>';
        $cbo .= '</form>';
    
    //output combo box (might want to put this in a form tag on your final page)
    echo $cbo;
    
}

?>

<img src="obrazki/shellac.jpg" name="pictures" width="99" height="100">


Po wybraniu opcji nic się nie dzieje.
Proszę o pomoc.

Pozdrawiam
czychacz
sprawdzałeś, czy to samo dzieje się z <img>, który ma ustawiony ID?
spróbuj zmienić <img> na:
Kod
<img src="obrazki/shellac.jpg" id="pictures" width="99" height="100">

<select> na:
Kod
<select id="picture" onChange="showimage()>

a w skrypcie js:
Kod
document.getElementById('pictures').src=document.getElementById('picture').options[document.getElementById('picture').selectedIndex].value

albo
Kod
document.getElementById('pictures').src=document.getElementById('picture').value


jeśli korzystałbyś z jQuery, sprawa byłaby dużo prostsza.
atyll
Dałem radę, jednak jest jeszcze rzecz o której zapomniałem biggrin.gif
Otóż, to wszystko to jest formularz, który pobiera wartość i zapisuje ją w pliku. I teraz nie wiem, jak wyciągnąć wartość z mojego combo boxa.

Teraz jest tak:
Kod generujący combo boxy:
Kod
<?php
$dir = 'obrazki/';
if ($handle = opendir($dir))
{
    while ($file = readdir($handle)) {
            if ($file != "." && $file != "..")
            {                
                $option[] = $file;
            }            
        }
    closedir($handle);
    foreach($option as $key=>$val)
    {
// Pierwszy combo box
    $combo_micro .='<option onclick="changeImg(\'microID\', \'obrazki/'.$val.'\')"/>'.$val.'</option>';
// Drugi combo box
    $combo_easy_loop .='<option onclick="changeImg(\'easyloopID\', \'obrazki/'.$val.'\')"/>'.$val.'</option>';
        
    }
}
?>


Kod HTML:
Kod
Podglad:<br>
<img id="microID" src="<?php echo $img_micro_ring ?>" width="150" height="150" rel="lightbox" alt="Podglad"/></a> Wybierz obrazek: <br><select id="microID" onclick="changeImg"><?php echo $combo_micro ?></select>


Kod akcji gdy wcisnę Submit (skrócone):
Kod
<?php

if(isset($_POST['save_opisy']))
{
     $myFile = "opisy/opisy.php";
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = "<?php \n";
$stringData = "\$img_micro_ring  = '".$_POST['microID']. "';\n";
fwrite($fh, $stringData);
fclose($fh);
}
?>


A więc, chcę, żeby formularz pobrał wartość z combo boxa (zignorujcie metode POST, przedtem używałem zwykłego pola tekstowego). Jak to zrobić? Wiem tylko, że coś chyba SelectedValue,
Proszę o pomoc i pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.