Замена слова php

Здравствуйте.

Подскажите как правильно сделать
Есть foreach использую для отображения всех изображений что есть по определенному пути

foreach(glob('img/ТУТ_НАДО_СДЕЛАТЬ_ЗАМЕНУ/*.png') as $img)

Возможно ли менять часть пути при нажатии на button, которых может быть не один или две штуки

Пробовал сделать так, но не получилось

<div id="str">
  <button id="one"></button>
  <button id="two"></button>
  <button id="three"></button>
</div>

<script>
  var str;
  $('#str button').on('click', function(){
     str = $(this).prop('id');
  });
</script>";

<?php
$phpVar = "<script>document.write(str);</script>";

foreach(glob('img/' . $phpVar . '/*.png') as $img){ ... }

Что значит “менять часть пути”? Для чего это, что и где получиться должно?

Ну и надо понять разницу между сервером и клиентом.
Самые основы. Как работает PHP.

Есть несколько папок для примера пусть их будет три (one, two и three) и в каждой папке лежит какое то количество изображений ( количество изображений в папках может меняться). Под каждую папку с этим изображением есть есть своя кнопка. У кнопки id соответствует названию папки с изображением и при нажатии на одну из кнопок нужно что бы отобразились те изображения, которых папка соответствует id кнопки. А если после первого отображения нажали на другую кнопку то изображения просто сменяли друг друга.

Это понимание есть.
Просто не хочется писать огромный код где будет описана каждая папка плюс к этому код повторяется и меняется только папка где лежат изображения

Извините, я не уверен.

Смотрите. Весь код на PHP к моменту, когда ваша страничка грузится клиенту УЖЕ выполнился.
Он выполнился что-то сделал с той папкой, которую Вы указали в glob( ‘img/тутЧтоТо/*.png’)
всё. Он УЖЕ НЕ БУДЕТ ВЫЗЫВАТЬСЯ СНОВА.

Вопрос, как же теперь передать нажатие кнопки?

Это можно сделать множеством разных способов ,как с перезагрузкой страницы, так и через получения результата через асинхронный запрос AJAX

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

<!DOCTYPE html>
<html>
 <head>
  <meta charset="utf-8">
  <title>Тест</title>

<form action="" method="post">
<div id="str">
  <button type="submit" name="PathImg" value="one">Button1</button>
  <button type="submit" name="PathImg" value="two">Button2</button>
  <button type="submit" name="PathImg" value="three">Button3</button>
</div>
</form>

<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
   // echo "POST OK<hr><pre>";
   // echo(print_r($_POST,1));

   if(isset($_POST['PathImg'])){
      $phpVar =	$_POST['PathImg'];
      foreach(glob('img/' . $phpVar . '/*.png') as $img){ ... }
   }
}
?>

через AJAX я бы тоже мог написать пример, тем более, что у Вас, судя по коду в скрипте, подключён jQuery, но думаю, что Вы и сами легко в этом разберётесь :slight_smile:

1 лайк

Прощаю, но Вы не сомневайтесь.

Спасибо за ответ. Что касается ajax в эту сторону я думал. А почему задал вопрос отвечу. Вдруг есть какой то еще способ, который будет ещё проще и лучше. Но в любом случае спасибо за ответ. Пойду дальше экспериментировать.

Удачи в экспериментах!

1 лайк