Суть.. Есть вкладки(на bootstrap).. На одной из них выводится список ссылок(часть кода ниже).. при нажатии на ссылку становится активной скрытая вкладка, куда нужно передать $value[1]. setstatus();- это js скрипт, который делает вкладку активной. Задача: без перезагрузки страницы(иначе добавленная вкладка слетает), передать значение $value[1] хоть как(хоть глобально)? Если есть # то после нее ничего в реквест не передается, а если нет то страница перезагружается. Если использовать return false, то запрос из href не добавляется. В общем как передать знацение $value[1] ? PHP: foreach ($shopnames1 as $value) { //var_dump($value); if (isset($value)) { echo '<a onclick="setstatus();" href="#?id=' . $value[1] . '">' . $value[0] . '</a>', "<br />"; } }
@Romio вы понимаете что такое php ? И вообще как устроена работа клиент-сервер ? Мне кажется понятие оного отсутствует, советую загуглить и изучить эти понятия. --- Добавлено --- ТС спрашивал как это сделать в php, а это jquery на js ))) Но я уверен подобный вопрос сложился у ТС от не понимания работы клиент-сервер.
Уважаемый! Это у вас не понимание! Вы ваши чувства при себе оставьте! Если не чего умного написать не можете, то и не пишите. PS. про ajax и тому подобные костыли я прекрасно знаю!
@Romio Если у вас возникают подобного рода вопросы вы ни черта не понимаете принципа работы webserver-client
@Romio я уже сказал по теме если вы слепы я не виноват. Изучите механизм вебсервер-клиент. И этот вопрос у вас выпадет из головы. А ещё не помишает изучить банальные функции на php . Понять что такое GET и POST запросы. Но для начала механизм сервер-клиент. --- Добавлено --- @Romio потому что вопрос у вас человека понятие не имеющего, что это такое вообще. Вы перед тем как в php лесть сели бы открыли умную книжку да почитали.
@Romio askanim всё правильно говорит. js - это клиентский язык. Его код загружается в браузер и отрабатывает уже в нём, а php - язык серверный и работает на сервере во время формирования web страницы. Если страница уже загружена, то работа php завершена. Если нужно что-то отправить из js в php, т е с клиента на сервер, не перезагружая страницу, то без ajax тут не разобраться. --- Добавлено --- А вот ругаться совсем не обязательно...
@TeslaFeo можно ещё web socket, но это пока рановато. Сам ещё не изучал эту тему если честно. Пока на аяксе сижу.
@TeslaFeo ваш ответ вполне меня устроил. Все доходчиво. А у @askanim язык длинный сильно. Тут, как обычно чем ...., тем больше из себя строит. К тому же пишу в разделе "PHP для новичков" Я думаю, что можно было тупо ответить: ajax, jquery... иначе никак.
Ajax приравнивать к костылям - даже грустно стало. Костылём можно было бы назвать передачу запроса через iframe, но ajax, в данном случае - это наиболее разумное решение и правильный инструмент для такого рода задач. Хотелось бы понять, что вас смущает в таком подходе. Подключать громоздкую библиотеку jQuery совсем не обязательно, т.к. это же можно написать на чистом JS в несколько строк. Есть и другие способы, но они так же реализовываются на стороне клиента и уж точно будут попадать в разряд костылей. Поэтому, советую оставить предрассудки и взять на вооружение Ajax.
Мне же просто нужно было просто передать значение из href. Обошёлся без href кстати. Да мое решение реально костыль. Но оно простое и работает. Я на счет ajax ничего против не имею.. Просто в моем случае, в нем нет необходимости. Ну вот терь кидайте кирпичи Код (Javascript): function setstatus(id) {//code document.getElementById("a1").textContent=id; } PHP: foreach ($shopnames1 as $value) { //var_dump($value); if (isset($value)) { echo '<a id="' . $value[1] . '" onclick="setstatus(id); return false;" href="#">' . $value[0] . '</a>', "<br />"; } } PHP: <?php $shop_id= '<span id="a1"><span>'; ?> + еще одной строкой подпилить переменную
То есть ты сначала формируешь страницу, а потом с нее же кидаешь данные назад на сервер, с перезагрузкой страницы? При том, что кидаешь данные, которые до этого сам же использовал для генерации тега? Мне кажется, или тут где-то закрались архитектурные проблемы?