То, что я пытаюсь сделать, это отображать изображение на основе щелчка по кнопке. Пока это то, что у меня есть. Я тоже натолкнулся на что-то. http://rvera.github.io/image-picker/Img Src Или data-imgsrc Coldfusion
Моя проблема заключается в том, что я нажимаю первую кнопку, и появляется первое изображение в базе данных, но вы не можете получить изображения других изображений. Я также использовал функцию ORDER BY, чтобы проверить, что другие фотографии работают, и они это делают. Поэтому он кажется застрявшим на первой фотографии в базе данных или сначала после сортировки.
<!DOCTYPE html>
<html>
<head>
<cfquery datasource="AccessTest" name="qTest">
SELECT Account, Image, Image_ID
FROM PictureDB
</cfquery>
<script src="http://code.jquery.com/jquery-2.0.3.js">
</script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#div1").html('<img src="<cfoutput>#qTest.Image#</cfoutput>">');
});
});
</script>
</head>
<body>
<div id="div1">
<h2>
Display Image
</h2>
</div>
<cfloop query="qTest">
<button>
<cfoutput>
<tr>
<td>
#qTest.Account#
</td>
</tr>
</cfoutput>
</button>
</cfloop>
</body>
<!DOCTYPE html>
<html>
<head>
<cfquery datasource="AccessTest" name="qTest">
SELECT Account, Image, Image_ID
FROM PictureDB
</cfquery>
<script src="http://code.jquery.com/jquery-2.0.3.js">
</script>
<script>
$(document).ready(function(){
var _img = [];
<cfoutput query="qTest">
_img.push({'id': '#qTest.Image_ID#', 'src': '#qTest.Image#'});
</cfoutput>
console.log(_img);
});
$("button").on('click', function(){
var _id = $(this).data('image-id');
console.log('Image ID: ' + _id + '.');
// Find the corrosponding object in the _img array.
var result = $.grep(_img, function(e){ return e.id === _id });
// If only one is found, then reference the image src from the matching object.
if (result.length === 1) {
console.log(result[0].src);
$("#div1").html('<img src="' + result[0].src + '">');
} else {
// If none or more than one are found, show a warning.
console.warn('Could not find image ' + _id + '.');
}
});
});
</script>
</head>
<body>
<div id="div1">
<h2>
Display Image
</h2>
</div>
<cfoutput query="qTest">
<button id="account_#qTest.Image_ID#" data-image-id="#qTest.Image_ID#">
#qTest.Account#
</button>
</cfoutput>
</body>
«Для того, чтобы делать то, что вы хотите, вы можете динамически генерировать массив JavaScript с использованием данных запроса, а затем использовать атрибут данных ImageID на кнопку, чтобы отобразить щелкнул кнопку для правильное изображение из массива. Затем вы будете вытаскивать данные записи на клиентской стороне, используя вашу функцию jQuery и заполнять div1 «...... Не совсем точно, как это сделать. –
Прокрутите запрос и создайте массив JS. @iKnowKungFoo ответил правильно. Ваш обработчик кликов ссылается только на первую строку запроса, чтобы это было единственное изображение, которое когда-либо показывалось. Вы назначаете один и тот же обработчик кликов всем кнопкам и ожидаете, что они будут вести себя по-разному. Он также прав, что ваша разметка HTML неверна. Я предлагаю вам сначала изучить основы HTML & JS, прежде чем продолжить. Это поможет вам лучше понять вашу проблему. –
Обновлено с полной прогулкой. –