Установка переменной из массива выбора изображения, отправка в PHP

0

Я использую приведенный ниже код для пользователей, чтобы выбрать миниатюру из массива изображений PHP в форме. Я пытаюсь выяснить, каким образом, когда пользователь отправляет форму, на которой он находится, изображение, которое когда-либо отображается в данный момент, будет передано через форму в сообщение PHP. Я не уверен, как это сделать. Логически думайте об этом, поскольку, если изображение [1] активно, я хочу отправить этот URL-адрес в форму. В настоящее время PHP var $ knoteImgs [] являются полными тегами, если мне нужно поместить тег img в JS, он может быть более чистым, чтобы получить URL-адрес.

<script type="text/javascript">
var image = new Array(3)
image[1]="<? echo $knoteImgs[0]; ?>"
image[2]="<? echo $knoteImgs[1]; ?>"
image[3]="<? echo $knoteImgs[2]; ?>"
var num = 1;

document.getElementById('next').addEventListener('click', function(galleryNext){
num=num+1
if (num==4)
{num=1}
document.getElementById('knoteImg').src=image[num];
});

document.getElementById('back').addEventListener('click', function(galleryPrevious){
num=num-1
if (num==0)
{num=3}
document.getElementById('knoteImg').src=image[num];
});
</script>

Изменение: если бы кто-нибудь мог связать меня с некоторыми соответствующими сообщениями, которые были бы полезными. Не уверен, что искать.

Отредактировано мое оригинальное сообщение, чтобы показать рабочий код: Спасибо @GaryHayes и @Brad за помощь!

<script type="text/javascript">
var image = <?php echo json_encode($knoteImgs); ?>;

var tot = image.length;
var c = 0; // current image (array key index)

function loadImage(){
  $("<img/>").attr({src:image[c], id:"knoteImg", class:"img-thumbnail"}).load(function() {
      $('#thumbnail').html( this );
  }); 
}
loadImage(); // load 1 image

$('#prev, #next').click(function(){
  id= this.id==='next' ? c++ : c-- ;
  c= c==-1 ? tot-1 : c%tot ;
  loadImage(); 

});
function getimage() {
document.getElementById('currentimage').value = document.getElementById('knoteImg').src;
var thumbnail = document.getElementById('currentimage');
alert(thumbnail.value);
}
</script>

alert(thumbnail.value); инициируется:

<input type="hidden" id="currentimage" name="currentimage" />
  <input type="submit" onclick="getimage();" value="Submit" />
  • 0
    Вы понимаете, что аргумент функции обратного вызова в addEventListener - это событие, а не галерея?
  • 2
    Осторожно ... вы не экранируете данные для правильного использования в JavaScript. Попробуйте var image = <?php json_encode($knoteImgs); ?>; вместо.
Показать ещё 11 комментариев
Теги:

1 ответ

1
Лучший ответ

Ваш HTML в форме:

  <input type="hidden" id="currentimage" name="currentimage" />

    <input type="submit" onclick="getimage();" value="Submit" />

Ваша функция в Javascript:

function getimage() {
document.getElementById('currentimage').value = document.getElementById('knoteImg').src;
}

Это что-то вроде этого... извините, если не идеально... не тестировать вживую.

  • 0
    Это работает для меня, я, вероятно, буду использовать это как ответ. Просто заметка, я пытался связать onclick = "getimage ();" на мои кнопки «Назад» и «Далее» в галерее изображений, чтобы при нажатии на них они просто обновляли переменную, но это не является хорошим решением, поскольку возвращает текущее значение, а не то, которое будет загружать при нажатии. Спасибо за решение :)
  • 0
    Рад, что смог помочь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню