Разве вы не должны разделить свой сценарий на 2 части?
Вы не можете работать с функциями $ (...). Hover (), поскольку jquery еще не инициализирован.
PS: не могли бы вы отобразить часть сгенерированного HTML.
Первый должен понравиться:
<script>
$(document).ready(function() {
<? foreach ($paginated_products as $product):?>
<? $image = $product->images->limit(2)->find_all(); ?>
$('img#nav<?php echo $image[1]; ?>').hover(function() {
$(this).attr("src","<?php echo $image[0]->url; ?>");
}, function() {
$(this).attr("src","<?php echo $image[1]->url; ?>");
});
<?php endforeach; ?>
});
</script>
Тогда у вас будет вторая часть в вашем теле (куда должны идти картинки)
<?php foreach ($paginated_products as $product):?>
<?php $image = $product->images->limit(2)->find_all(); ?>
<img src="<?= $image[1]->url; ?>" id ="nav<?php echo $image[1]; ?>" />
<?php endforeach; ?>