Массив изображений, не отображаемых должным образом.

Я пытаюсь взять данные пути изображения из моей базы данных и показать его на эскизе обработки, так что это файл Javascript:

<script type="text/javascript"> function send() { function setPath(d) { var s = d; var processingInstance; if (!processingInstance) { processingInstance = Processing.getInstanceById('canvas'); } processingInstance.change(s); } var variable = 2; $.ajax({ method: "POST", tupe: "POST", url: "take.php", data: ({val: variable}), success: function (data) { $('#msg').html(data); setPath(data); }, }); }</script> 

это файл PHP:

 <?php $con = mysqli_connect('localhost', 'Admin', 'xkmpfg3t', 'test'); if (!$con) { echo mysqli_errno($con); } if ($_POST) { $temp = $_POST['val']; $query = mysqli_query($con, "SELECT* FROM `pictures` WHERE `user_id` = $temp"); if (!$query) { mysqli_errno($con); } $im = array(); $i = 0; $img; while ($image = mysqli_fetch_assoc($query)) { $img = $image['picture_name']; $im[$i] = "$img"; $i += 1; } foreach ($im as $i => $value) { echo " $value"; } // echo $im; } ?> 

и это мой код Processing.js здесь:

 String pic ; PImage img; int x; int y; int pad = 10; int bs = 50; String[] list = new String[0]; void setup(){ size(500,500); background(150); //img = loadImage(pic); } void draw(){ for (int i = 0; i < list.length ; i++){ x = pad + (bs+pad)*i; y = pad; image(img,x,y,bs,bs); } } void change(String val){ list = split(val," "); for(int i = 0; i <list.length; i++){ pic = list[i]; img = loadImage(pic); println(pic); } } 

Проблема в том, что когда я запускаю эскиз, он показывает мне еще одно изображение и только последний элемент массива. Если у меня есть 5 элементов, в области скита у меня есть 6 одинаковых изображений с пятым элементом массива. Как я могу исправить это и увидеть 5 разных изображений?

Подумайте об этом так: у вас есть только одна переменная img , поэтому вы показываете только одно изображение!

Присмотритесь к своей петле:

  for(int i = 0; i <list.length; i++){ pic = list[i]; img = loadImage(pic); println(pic); } 

Вы перебираете list и получаете изображения из него, но вы постоянно устанавливаете переменную img снова и снова. В конце этого цикла img будет просто соответствовать последнему изображению в списке.

Вместо использования одной переменной img вы, вероятно, захотите использовать массив или ArrayList . Вот основной старт:

 PImage[] images; void draw(){ for (int i = 0; i < images.length ; i++){ x = pad + (bs+pad)*i; y = pad; image(images[i],x,y,bs,bs); } } void change(String val){ list = split(val," "); images = new PImage[list.length]; for(int i = 0; i < list.length; i++){ images[i] = loadImage(list[i]); } }