Это может быть слишком много «из коробки» и недостаточно точным для вашего кода, чтобы быть полезным, но здесь идет речь:
Учитывая описание того, что код должен делать, вы всегда можетеваш PHP выведет список фоновых изображений в фрагмент JavaScript на представлении (очень грубо псевдокод: <script><?php echo phpArrayToJavaScriptArray($images, $varName); ?></script>
), затем javascript динамически создаст список ссылок для изменения фона на стороне клиента и каждыйщелкните, просто измените фоновое изображение с помощью JavaScript (<a href="javascript:changeBackgroundImage('url')">
, установив фоновое изображение document.getElementById('wrapper')
).
Нет необходимости в Ajax.
С учетом этой концепции простейшая настройка вашего кодаЯ могу спешить с конкотами:
Вместо того, чтобы передавать идентификаторы в представление, передайте URL-адреса в представление (вам, конечно, придется соответствующим образом настроить запросы) и изменить:
"<a
class='background_btn'
href='index.php/home/set_background/" . $row['background_id'] . "'>"
. $count
. "</a>"
что-то вроде
"<a
class='background_btn'
href=\"javascript:changeBackgroundImage('"
. htmlspecialchars($row['background_url'], ENT_QUOTES, 'utf-8')
. "')\">"
. $count
. "</a>"
Функция JavaScript будет выглядеть примерно так:
<script language="javascript">
function changeBackgroundImage(url) {
var wrapper = document.getElementById('wrapper');
wrapper.style = "background-image:url(" + url + ")";
}
</script>
Имейте в виду, что все еще псевдокод, ясомневаюсь, что он выйдет из коробки, мой JS очень ржавый, и это должно делиться идеями, а не просто исправлять.:) Но я надеюсь, что это поможет вам решить вашу проблему!
Возможен ли такой подход для вас?