передать параметр при нажатии на ссылку без использования?id=xxx



Есть ли способ передать параметр, просто нажав на ссылку, в условии, что ссылка не обрабатывает параметр, например



<a href='example.php?id=1'>M</a>


Я не хочу использовать ?id=1



Есть ли способ сделать это? Я хочу, чтобы параметр был передан на следующую страницу без параметра формы и ссылки при нажатии на ссылку.



Таким образом, я могу обрабатывать параметр на следующей странице, а не на той же странице.
568   3  

3 ответов:

Самый простой - вы можете создать форму со скрытым входом и отправить ее по клику на эту ссылку. Вот код (с помощью jQuery):

$('.submit-form').click(function(){
  //add the value to be sent to the input in the form
  $('#link-extra-info input').val( $(this).data('submit') );
  
  //the href in the link becomes the action of the form
  $('#link-extra-info').attr('action', $(this).attr('href'));
  
  //submit the form
  $('#link-extra-info').submit();
  
  //return false to cancel the normal action for the click event
  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="link-extra-info">
  <input type="hidden" name="p" value="0">
</form>

<a href="page.html" class="submit-form" data-submit="1">Link text 1</a>
<a href="page2.html" class="submit-form" data-submit="2">Link text 2</a>

Потенциально креативное решение: используйте файл cookie. HTML будет выглядеть следующим образом:

<a href="link.html" onclick="passVariable(this)">Link</a>

С некоторыми JS

<script>
function passVariable(url) {
    document.cookie = "id=1";
    window.location.href = this;
}
</script>

Затем на странице, на которую вы переходите, используйте некоторые JS для извлечения файла cookie:

<script>
    function getCookie(cname) {
        var name = cname + "=";
        var decodedCookie = decodeURIComponent(document.cookie);
        var ca = decodedCookie.split(';');
        for(var i = 0; i <ca.length; i++) {
            var c = ca[i];
            while (c.charAt(0) == ' ') {
                c = c.substring(1);
            }
            if (c.indexOf(name) == 0) {
                return c.substring(name.length, c.length);
            }
        }
        return "";
    }
</script>

Может выполнить вызов AJAX для получения связанных данных после анализа значения файла cookie.

Пример 1

Вы можете использовать параметр data-* и Ajax для него.

<a class="example_anchor" href='example.php?' data-id="1" >M</a>

<script>

$(".example_anchor").on("click", function (e) {
e.preventDefault();
var id = $(this).data('id');

$.ajax({
    url: your_url,
    type: "POST",
    dataType: "json",
    data: { id: id },
    error: function (msg) {
        // Error handling
    },
    success: function (msg) {
        // Success handling
        if (msg == true) {
             alert("You will now be redirected.");
             window.location = "//your_redirect_link/";
        }
    }
});


});

</script> 

Пример 2

Вы можете использовать функцию в onclick тега <a> передавая параметры

<a href='#' onclick="yourfunction(1)">M</a>

<script>
    function yourfunction(id1)
    {
        alert(id1);
    }
</script>

JS пример скрипки

Comments

    Ничего не найдено.