PHP kodu kutuya aşağı bir damla seçili seçenek değerini almak nasıl

1 Cevap php

Ben çiçek gibi, kelebek vb logoları bir dizi listeleyen bir açılan kutu var

<p class="title1">Logo</p>
<select name="logoMenu" class="select" size="7">
    <?php foreach($logos as $logo):?>
        <option id="<?php echo $logo['Subproperty']['id'];?>" value="<?php echo $logo['Subproperty']['values'];?>">
            <?php echo $logo['Subproperty']['values'];?>
        </option>
    <?php endforeach;?>
</select>

Ben kutu açılan logosu 'Çiçek' seçeneğini varsayalım, ben çiçek resmi bir div görüntülenmesini istiyorum. Bu benim resimleri görüntülemek zorunda div:

<div id="theme_logos" class="float_left spaceleft" style="display:none;">
    <?php foreach($defaultLogos as $logo):
        //if($logo['Subproperty']['values']==clicked option value){?>
        <img height="50" width="50" src="/FormBuilder/app/webroot/img/themes/<?php echo $logo['Subproperty']['images'];?>" class="float_left user_profile_image user_profile_image" alt="Default50"/> 
    <?php endforeach;?>
</div>

Bu kod ile sorun tabloda bulunan tüm resimleri görüntüler olmasıdır. Benim denetleyicisi kod ben 'Logo' olduğu gibi sadece mülkiyet id vermek, ama hangi logosu vermeyin çünkü.

$this->set('defaultLogos',$this->Subproperty->find('all',array('conditions'=>array('Subproperty.property_id'=>1,'Subproperty.values'=>"Flower"))));

Ben sadece çiçek resmi olsun o yüzden burada sert 'çiçek' kodlanmış.

Ben kutu açılan logosu seçerseniz, nasıl denetleyicisi kodu bu seçilen değer iletebilirsiniz? JQuery kullanarak seçilen logo adını almak Ya da, nasıl ben foreach döngüsü içinde eğer durumda bu değeri kullanabilirsiniz?

Ben CakePHP framework kullanıyorum.

$("#logoMenu option").click(function(){
    selectedLogo=$(this).attr("value");
    $('#subproperty_id').val($(this).attr("id"));   

    if(selectedLogo=="Your logo"){
        $("#themes_upload").show();
    }
    else{
        alert(selectedLogo);
        $("#themes_upload").hide();
        $("#theme_logos").show();
    }
});

EDIT:

Ben denetleyicisi aynı eylem seçilen logo geçmek Şimdi nerede bir AJAX POST denedim. Ben ajax fonksiyonunun başarısı işlevi geçirilen değeri uyarır ama resim görünmüyor zaman değeri olsun.

$("#logoMenu option").click(function(){
    selectedLogo=$(this).attr("value");
    $('#subproperty_id').val($(this).attr("id"));   

    if(selectedLogo=="Your logo"){
        $("#themes_upload").show();
    } else {
        alert(selectedLogo);
        $.ajax({
            type: "POST",
            url: "http://localhost/FormBuilder/index.php/themes/themes/",
            async: false,
            data: "selectedLogo="+selectedLogo,
            success: function(msg){
            alert( "Data Saved: " + msg);
    }
});

$("#themes_upload").hide();
$("#theme_logos").show();
}

function themes(){  
    $this->set('themes',$this->Theme->find('all'));
    $logo=$this->params['form']['selectedLogo']; 
    echo "logo:".$logo;  
    $this->set('defaultLogos',$this->Subproperty->find('all',array('conditions'=>array('Subproperty.property_id'=>1,'Subproperty.values'=>$logo))));
}

Ben sayfasında görüntüyü görüntülemek çalıştığınızda, o görünmüyor. Div show komutu AJAX isteği sonra olduğu için mi?

1 Cevap

Eğer seçeneği ya da gerçekten kolay olacaktır seçin seçeneğini gösteren öğenin değerine gizli div görüntü koymak niteliğini seçin değer görüntünün src koyabilirsiniz. Gibi:

OLGU 1) opsiyonunun değeri özelliğinde img src koymak

<option id="<?php echo $logo['Subproperty']['id'];?>" 
 value="/FormBuilder/app/webroot/img/themes/
                <?php echo $logo['Subproperty']['images'];?>">....</option>

$("#logoMenu").change(function(){
    var logo=$("#logoMenu option:selected").attr("value");
    $("#theme_logos img").hide();
    $("#theme_logos img[src='"+logo+"']").show();
})

OLGU 2) seçeneğinde değere görüntünün alt koymak

<img height="50" width="50" src="..<?php echo $logo['Subproperty']['images'];?>"
      class="..." alt="<?php echo $logo['Subproperty']['values'];?>"/>

<option id="<?php echo $logo['Subproperty']['id'];?>" 
 value="<?php echo $logo['Subproperty']['values'];?>">..</option>

$("#logoMenu").change(function(){
    var alt=$("#logoMenu option:selected").attr("value");
    $("#theme_logos img").hide();//hide any other logo that is showing
    $("#theme_logos img[alt='"+alt+"']").show();//show selected logo
})

EDIT: - Test Kodu (OLGU 2)

<div id="logos">
   <img src="flwrs_1.jpg" alt="1" height="32" width="32" style="display:none;" />
   <img src="flwrs_2.jpg" alt="2" height="32" width="32" style="display:none;" />
   <img src="flwrs_3.jpg" alt="3" height="32" width="32" style="display:none;" />
   <img src="flwrs_4.jpg" alt="4" height="32" width="32" style="display:none;" />
   <img src="flwrs_5.jpg" alt="5" height="32" width="32" style="display:none;" />
</div>
<select id="logo">
   <option id='1' value='1'>1</option>
   <option id='2' value='2'>2</option>
   <option id='3' value='3'>3</option>
   <option id='4' value='4'>4</option>
   <option id='5' value='5'>5</option>
</select>

<script type="text/javascript">
$(document).ready(function(){
     $("#logo").change(function(){
         var i=$("#logo option:selected").attr("value");
         $("div#logos img").hide();
         $("#logos img[alt='"+i+"']").show();
     });
});
</script>