Передача параметров в функцию JQuery

Я создаю HTML с циклом, в котором есть столбец для действия. Эта колонка - это гиперссылка, которая, когда пользователь щелкает, вызывает JavaScript функция и передает параметры ...

пример:

<a href = "#" OnClick = "DoAction(1,'Jose');" > Click </a>
<a href = "#" OnClick = "DoAction(2,'Juan');" > Click </a>
<a href = "#" OnClick = "DoAction(3,'Pedro');" > Click </a>
...
<a href = "#" OnClick = "DoAction(n,'xxx');" > Click </a>

Я хочу, чтобы эта функция вызывала функцию Ajax jQuery с правильным параметры.

Любая помощь?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
53
0
395 690
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Использование POST

function DoAction( id, name )
{
    $.ajax({
         type: "POST",
         url: "someurl.php",
         data: "id = " + id + "&name = " + name,
         success: function(msg){
                     alert( "Data Saved: " + msg );
                  }
    });
}

Использование GET

function DoAction( id, name )
{
     $.ajax({
          type: "GET",
          url: "someurl.php",
          data: "id = " + id + "&name = " + name,
          success: function(msg){
                     alert( "Data Saved: " + msg );
                   }
     });
}

Обновлено:

Возможно, лучший способ сделать это, который работал бы (с использованием GET), если бы javascript не был включен, - это сгенерировать URL-адрес для href, а затем вместо этого использовать обработчик кликов для вызова этого URL-адреса через ajax.

<a href = "/someurl.php?id=1&name=Jose" class = "ajax-link"> Click </a>
<a href = "/someurl.php?id=2&name=Juan" class = "ajax-link"> Click </a>
<a href = "/someurl.php?id=3&name=Pedro" class = "ajax-link"> Click </a>
...
<a href = "/someurl.php?id=n&name=xxx" class = "ajax-link"> Click </a>

<script type = "text/javascript">
$(function() {
   $('.ajax-link').click( function() {
         $.get( $(this).attr('href'), function(msg) {
              alert( "Data Saved: " + msg );
         });
         return false; // don't follow the link!
   });
});
</script>

Вам не нужно ничего менять для GET, кроме изменения TYPE на GET. Строка запроса будет построена автоматически.

Pim Jager 18.06.2009 14:01

@Pim - обновлено, спасибо. Я все еще был новичком в jQuery, когда писал это.

tvanfosson 18.06.2009 16:11

Если вы хотите передать в URL более одного параметра, используйте данные в качестве данных: {id: '123', name: "MyName"}, где 123 - это значение параметра id, myName - это значение для имени параметра, value здесь может быть строкой или переменной, имеющей передаваемое значение. просто простой прием, позволяющий избежать конкатенации строк.

frictionlesspulley 28.06.2010 20:09

Этот принятый ответ выглядит превосходно для меня, но я не могу не задаться вопросом, как бы это выглядело с привязками onClick, выполненными в jQuery, а не прямо в тегах <a>? Я убежден, что jQuery также предназначен для обработки привязок событий.

Marcus 29.07.2010 03:34

@Marcus - на самом деле я бы сгенерировал URL-адрес как атрибут href. Затем я бы добавил обработчик кликов, который получает URL-адрес из элемента href привязки и публикует / получает его через ajax, возвращая false из обработчика кликов. Я могу добавить это в качестве альтернативы.

tvanfosson 29.07.2010 03:53

@tvanfosson Я попробовал ссылку для получения альтернативы href, которую вы опубликовали (я скопировал / вставил), но по какой-то причине эта строка -> $ .get ($ (this) .attr ('href') ничего не делает (нет предупреждение), есть идеи?

Patricio Carvajal H. 07.03.2017 08:16

@PatricioCarvajalH. используйте отладчик браузера, чтобы узнать, не выполняется ли ваш запрос по какой-либо причине - я предполагаю, что он не возвращает действительный ответ.

tvanfosson 07.03.2017 17:45

Вы хотите передать параметры на другую страницу или только в функцию?

Если только функция, вам не нужно добавлять tvanfosson $ .ajax (). Вместо этого просто добавьте содержимое своей функции. Нравиться:

function DoAction (id, name ) {
    // ...
    // do anything you want here
    alert ("id: "+id+" - name: "+name);
    //...
}

Это вернет окно предупреждения со значениями идентификатора и имени.

Если вы хотите выполнить вызов ajax или простую функцию javascript, не забудьте закрыть свою функцию с помощью return false

как это:

function DoAction(id, name) 
{ 
    // your code
    return false;
}

попробуйте что-нибудь вроде этого

#vote_links a перехватит все идентификаторы внутри ссылок для голосования. Div id ...

<script type = "text/javascript">

  jQuery(document).ready(function() {
  jQuery(\'#vote_links a\').click(function() {// alert(\'vote clicked\');
    var det = jQuery(this).get(0).id.split("-");// alert(jQuery(this).get(0).id);
    var votes_id = det[0];


   $("#about-button").css({
    opacity: 0.3
   });
   $("#contact-button").css({
    opacity: 0.3
   });

   $("#page-wrap div.button").click(function(){
<script type = "text/javascript" src = "jquery.js">
</script>

 <script type = "text/javascript">

  function omtCallFromAjax(urlVariable)
{ 
    alert("omt:"+urlVariable);
     $("#omtDiv").load("omtt.php?"+urlVariable);
}

 </script>

попробуйте, это сработает для меня

Другие вопросы по теме