2016-05-28 3 views
1

ドロップダウンでオプションを選択すると正しい画像が表示されます。オプション値が表示値と同じであれば画像を表示できます。しかし、私は値ではなくエコーを使って表示する方法がわかりません。たとえば、オプション値が1でファイル名がimage.jpegの場合、画像ソースはuploads/image.jpegではなくuploads/1になります。JQueryでリンクされた値を使用してドロップダウンから画像を表示する方法

<select class = "form-control" id="changeImage" onChange="changeImage" name="changeImage"> 
    <option disabled selected value> -- select an image -- </option> 
     <?php 
      foreach($images as $imagedrop){ 
     ?> 
      <option value="<?php echo $imagedrop['id'] ?>"> 
     <?php echo $imagedrop['filename'] ?> </option> 
     <?php 
      } 
     ?> 
</select> 
<script>   
    $('#changeImage').change(function(){ 
     $('#image')[0].src= 'uploads/'+this.value; 
    }); 
</script> 

答えて

0

あなたは$()にすることもできます。テキスト()

$('#changeImage').change(function(){ 
    var image = $(this); 
    var selectedIndex = image.prop('selectedIndex'); 
    var optionName = $('option', this).eq(selectedIndex).text(); 
    $('#image').prop('src', 'uploads/' + optionName); 
}); 

それとも...

$('#changeImage').change(function(){ 
    var image = $(this); 
    var selectedValue = image.val(); 
    var optionName = $('option[value=' + selectedValue + ']').text(); 
    $('#image').prop('src', 'uploads/' + optionName); 
}); 

---- EDIT

なし(以下のようなPHPコードを編集してくださいスペース)

<select class = "form-control" id="changeImage" onChange="changeImage" name="changeImage"> 
    <option disabled selected value> -- select an image -- </option> 
     <?php 
      foreach($images as $imagedrop){ 
     ?><option value="<?php echo $imagedrop['id'] ?>"><?php echo $imagedrop['filename'] ?></option> 
     <?php 
      } 
     ?> 
</select> 
<script>   
    $('#changeImage').change(function(){ 
     $('#image')[0].src= 'uploads/'+this.value; 
    }); 
</script> 

OR ..使用trim()

$('#changeImage').change(function(){ 
    var image = $(this); 
    var selectedIndex = image.prop('selectedIndex'); 
    var optionName = $('option', this).eq(selectedIndex).text().trim(); // trim here! 
    $('#image').prop('src', 'uploads/' + optionName); 
}); 

それとも...(と)

$('#changeImage').change(function(){ 
    var image = $(this); 
    var selectedValue = image.val(); 
    var optionName = $('option[value=' + selectedValue + ']').text().trim(); // trim here! 
    $('#image').prop('src', 'uploads/' + optionName); 
}); 

--- EDIT再び。

<?php 
    $options = array(); 
    foreach($images as $imagedrop) { 
    $options[] = sprintf('<option value="%d">%s</option>', $imagedrop['id'], $imagedrop['filename']); 
    } 
?> 
<select class = "form-control" id="changeImage" onChange="changeImage" name="changeImage"> 
    <option disabled selected value> -- select an image -- </option> 
    <?php echo implode(' \n' /* for bueaty html source, use '' */, $options); ?> 
</select> 

<script>   
    $('#changeImage').change(function(){ 
    var image = $(this); 
    var selectedIndex = image.prop('selectedIndex'); 
    var optionName = $('option', this).eq(selectedIndex).text().trim(); // trim here! 
    $('#image').prop('src', 'uploads/' + optionName); 
    }); 
</script> 
+0

ファイル名の前にはいくらか近いですが、私はたくさんの%20%20%20%20%20%20%20%20を受け取りました。 – Lotse

+0

これをどのようにデコードできますか? – Lotse

+0

スペースにはtrim()を使用してください( '' - %20 ASCIIコード用にエンコードされています)。 –

0
var pictureList = [ 
    "http://lorempixel.com/uploads/image.jpeg", 
    "http://lorempixel.com/uploads/image.jpeg", 
    "http://lorempixel.com/uploads/image.jpeg", 
    "http://lorempixel.com/uploads/image.jpeg", 
    "http://lorempixel.com/uploads/image.jpeg", ]; 

$('#changeImage').change(function() { 
    var val = parseInt($('#changeImage').val()); 
    $('image').attr("src",pictureList[val]); 
}); 

PicturelistのVARは、基本的アレイです。あなたがpicturelist [1]と言うと、あなたはvarの最初のリンクを取得します。

+0

申し訳ありませんが、私は私が呼んしようとしている画像は、データベースと呼ばれる画像からのものであることを言及するのを忘れてしまったと私はすべてのimagedropがデータベースおそらくそれからであればthis.valueがthis.echo – Lotse

+0

ような何かになりたいですURLを持っているので、option要素の値をurlに与えると、そのように変更することができます。 –

+0

オプション値は、イメージテーブルの主キーを表すint値でなければなりません。ドロップダウン内のecho'dファイル名をimg src urlにしたいと思っています – Lotse

関連する問題