Как отследить нажатие на кнопку php?

Есть 3 кнопки:
<div class="offer-photo">
				<input type="image" name="first" id="one_photo" src="img/white-boot.png" class="photo-boots chose" onclick="photo_one()">
				<input type="image" name="second" id="two_photo" src="img/blue-boot.png" class="photo-boots" onclick="photo_two()">
				<input type="image" name="third" id="three_photo" src="img/red-boot.png" class="photo-boots" onclick="photo_three()">
			</div>


При нажатии на них должна меняться переменная в php:
<?php
			$current = 2;
		if ($current == 1){
			echo '<img src="img/boots-galery.png" alt="" class="boot-galery">';
			echo '<div class="wrapper-offer">
			<img src="img/galery-white-1.jpg" alt="" class="offer-galery">
			<img src="img/galery-white-2.jpg" alt="" class="offer-galery">
			<img src="img/galery-white-3.jpg" alt="" class="offer-galery">
			</div>';
			}
		else if ($current == 2){
			echo '<img src="img/blue-boots-galery.png" alt="" class="boot-galery">';
			echo '<div class="wrapper-offer">
			<img src="img/galery-blue-1.jpg" alt="" class="offer-galery">
			<img src="img/galery-blue-2.jpg" alt="" class="offer-galery">
			<img src="img/galery-blue-3.jpg" alt="" class="offer-galery">
			</div>';
			}
		else if ($current == 3){
			echo '<img src="img/red-boots-galery.png" alt="" class="boot-galery">';
			echo '<div class="wrapper-offer">
			<img src="img/galery-red-1.jpg" alt="" class="offer-galery">
			<img src="img/galery-red-2.jpg" alt="" class="offer-galery">
			<img src="img/galery-red-3.jpg" alt="" class="offer-galery">
			</div>';
			}
		?>

Как это сделать?)
  • Вопрос задан
  • 4298 просмотров
Решения вопроса 2
Wolfnsex
@Wolfnsex Куратор тега PHP
Если не хочешь быть первым - не вставай в очередь!
При нажатии на них должна меняться переменная в php:
В первую очередь, Вы должны понимать, что переменные в PHP будут переинициализированы, при каждом новом запуске скрипта и то, что все переменные и значения в PHP-скрипте существуют только в тот момент, пока этот самый скрипт выполняется.

Если Вам нужно хранить значение переменной между запросами - для этого можно использовать например сессию или базу данных, или хранилище или...

Как это сделать?)
С помощью отправки формы на сервер, либо с помощью AJAX-запроса, это наиболее распространённые способы.
Ответ написан
Stalker_RED
@Stalker_RED
Никак. PHP работает на сервере, и не видит что там клиент нажимает.

Браузер должен отправить запрос на сервер, обычно с POST или GET запросом (есть и другие варианты, но эти два чаще всего).

Открой учебник по HTML и почитай как устроены ссылки и формы. Или ajax.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Посерчи AJAX.
Выглядеть решение будет примерно так - при клике на кнопку идет AJAX-запрос на сервер, в data отправляешь кнопку по которой кликнул, на сервере обрабатываешь и возвращаешь в браузер.
Ответ написан
Комментировать
@motcart
Для каждой кнопки у вас есть имя в атрибуте name с разными названиями для трех кнопок:
<input name="first"' ... >
<input name="second"' ... >
<input name="third"' ... >


На принимающей стороне проверяете эту переменную в зависимости от нее выполняете нужный блок $current.
$current = $POST[name]; (или GET)
Только вместо $current==1 впишите $current==first и т. п.

Как-то так. Давно не кодил. Должно работать, надо проверить.
Ответ написан
@UPSA
anykey. Я не программист, я просто ленивый.
Видя отсутствие тега <form> и <submit> и присутствия onclick="photo_three()" можно предположить что у вас технология AJAX. В этой JS функции вы должны вызвать php страницу с сервера и "использовать, например, сессию или базу данных, или хранилище или..." (то что сказал Евгений Вольф ) для сохранения результата нажатия. Например, мой.сайт.рф/photo_three.php или мой.сайт.рф/photo.php?current=three (так не делайте :) - это только пример - безопасность к летит к черту). Нужно написать еще одну страницу на php, контроллер, Поищите AJAX+PHP .
Когда вы откроете страницу вашего php скрипта инициализируете переменную $current из того хранилища которое выбрали (Сессия или база данных ... )
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы