За последние 24 часа нас посетили 22099 программистов и 1058 роботов. Сейчас ищут 496 программистов ...

Как вытянуть значение из тега <a href=#> в php

Тема в разделе "PHP для новичков", создана пользователем Romio, 29 ноя 2016.

Метки:
  1. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    Суть.. Есть вкладки(на bootstrap).. На одной из них выводится список ссылок(часть кода ниже).. при нажатии на ссылку становится активной скрытая вкладка, куда нужно передать $value[1].
    setstatus();- это js скрипт, который делает вкладку активной.
    Задача: без перезагрузки страницы(иначе добавленная вкладка слетает), передать значение $value[1]
    хоть как(хоть глобально)? Если есть # то после нее ничего в реквест не передается, а если нет то страница перезагружается. Если использовать return false, то запрос из href не добавляется.
    В общем как передать знацение $value[1] ?
    PHP:
    1. foreach ($shopnames1 as $value) {
    2. //var_dump($value);
    3.                         if (isset($value)) {
    4.                             echo '<a onclick="setstatus();"  href="#?id=' . $value[1] . '">' . $value[0] . '</a>', "<br />";
    5.                         }
    6.                     }
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    function setstatus()
    {
    var link = $(this).attr('href'); // вытаскиваем URL из href атрибута
    }
     
  3. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    А как в php назад из js потом вернуть ?
     
  4. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    да прибудет с нами ajax животворящий. Аминь.
    --- Добавлено ---
    ajax поможет. :)
     
  5. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    А не слишком ли много костылей ?
     
  6. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Romio вы понимаете что такое php ? И вообще как устроена работа клиент-сервер ?
    Мне кажется понятие оного отсутствует, советую загуглить и изучить эти понятия.
    --- Добавлено ---
    ТС спрашивал как это сделать в php, а это jquery на js )))
    Но я уверен подобный вопрос сложился у ТС от не понимания работы клиент-сервер.
     
  7. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    Уважаемый! Это у вас не понимание! Вы ваши чувства при себе оставьте! Если не чего умного написать не можете, то и не пишите.
    PS. про ajax и тому подобные костыли я прекрасно знаю!
     
  8. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Romio Если у вас возникают подобного рода вопросы вы ни черта не понимаете принципа работы webserver-client
     
  9. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    @askanim У вас по теме есть, что то ? Или вы тут душу изливать будете?
     
  10. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @Romio я уже сказал по теме если вы слепы я не виноват. Изучите механизм вебсервер-клиент. И этот вопрос у вас выпадет из головы. А ещё не помишает изучить банальные функции на php . Понять что такое GET и POST запросы. Но для начала механизм сервер-клиент.
    --- Добавлено ---
    @Romio потому что вопрос у вас человека понятие не имеющего, что это такое вообще. Вы перед тем как в php лесть сели бы открыли умную книжку да почитали.
     
  11. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    @Romio askanim всё правильно говорит. js - это клиентский язык. Его код загружается в браузер и отрабатывает уже в нём, а php - язык серверный и работает на сервере во время формирования web страницы.

    Если страница уже загружена, то работа php завершена. Если нужно что-то отправить из js в php, т е с клиента на сервер, не перезагружая страницу, то без ajax тут не разобраться.
    --- Добавлено ---
    А вот ругаться совсем не обязательно...
     
  12. askanim

    askanim Старожил

    С нами с:
    7 апр 2016
    Сообщения:
    2.201
    Симпатии:
    166
    Адрес:
    GABRIEL
    @TeslaFeo можно ещё web socket, но это пока рановато. Сам ещё не изучал эту тему если честно. Пока на аяксе сижу.
     
    TeslaFeo нравится это.
  13. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    @TeslaFeo ваш ответ вполне меня устроил. Все доходчиво. А у @askanim язык длинный сильно. Тут, как обычно чем ...., тем больше из себя строит. К тому же пишу в разделе "PHP для новичков"
    Я думаю, что можно было тупо ответить: ajax, jquery... иначе никак.
     
    #13 Romio, 30 ноя 2016
    Последнее редактирование: 30 ноя 2016
  14. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    Получилось таки передать средствами JS. Без ajax;)
     
  15. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    Ajax приравнивать к костылям - даже грустно стало. Костылём можно было бы назвать передачу запроса через iframe, но ajax, в данном случае - это наиболее разумное решение и правильный инструмент для такого рода задач. Хотелось бы понять, что вас смущает в таком подходе. Подключать громоздкую библиотеку jQuery совсем не обязательно, т.к. это же можно написать на чистом JS в несколько строк. Есть и другие способы, но они так же реализовываются на стороне клиента и уж точно будут попадать в разряд костылей. Поэтому, советую оставить предрассудки и взять на вооружение Ajax.
     
  16. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    похвастайся кодом, чего там намудрил
     
  17. Romio

    Romio Новичок

    С нами с:
    11 сен 2016
    Сообщения:
    14
    Симпатии:
    0
    Мне же просто нужно было просто передать значение из href. Обошёлся без href кстати. Да мое решение реально костыль. Но оно простое и работает. Я на счет ajax ничего против не имею.. Просто в моем случае, в нем нет необходимости.

    Ну вот терь кидайте кирпичи;)
    Код (Javascript):
    1.  function setstatus(id)
    2. {//code
    3. document.getElementById("a1").textContent=id;
    4. }
    PHP:
    1. foreach ($shopnames1 as $value) {
    2. //var_dump($value);
    3.                         if (isset($value)) {
    4.                             echo '<a id="' . $value[1] . '" onclick="setstatus(id); return false;"  href="#">' . $value[0] . '</a>', "<br />";
    5.                         }
    6.                     }
    PHP:
    1. <?php
    2.                 $shop_id= '<span id="a1"><span>';
    3.              
    4.                 ?>
    + еще одной строкой подпилить переменную
     
  18. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    тоже самое как в ajax :)
     
  19. Deonis

    Deonis Старожил

    С нами с:
    15 фев 2013
    Сообщения:
    1.521
    Симпатии:
    504
    [​IMG]
     
  20. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.989
    Симпатии:
    759
    хозяин барин.
     
  21. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.751
    Симпатии:
    1.322
    Адрес:
    Лень
    Знаем:D
     
  22. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    То есть ты сначала формируешь страницу, а потом с нее же кидаешь данные назад на сервер, с перезагрузкой страницы? При том, что кидаешь данные, которые до этого сам же использовал для генерации тега? Мне кажется, или тут где-то закрались архитектурные проблемы?