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?