2014-01-20 4 views
0

Когда пользователь выбирает метод из выпадающего меню, должно быть уволено событие. У меня есть флажок, который получает идентификатор из базы данных и на основе этого идентификатора вы можете добавить или удалить пользователя из выпадающего меню.Как передать идентификатор в раскрывающееся меню?

var ajReq = new XMLHttpRequest(); 
    $(document).ready(function() { 
     $('.dropdown-menu li a').click(function (e) { 
      switch ($(this).text()) { 
       case "Add": 
         Do something... 

        break; 

       case "Remove": 
        var id = $(this).attr("Remove-something"); 
         SomeAjaxMethod(id) 
        break; 
      } 
     }); }); 

Здесь я создаю свои флажки:

row += '<td><input type="checkbox" class="Remove" Remove-something= "' + msg[data].ID+ '"></td>' 

Таким образом, вопрос в том, что если я галочкой один из флажков (который будет содержать идентификатор записи, который будет использоваться для удаления этой конкретной записи). И если я затем выпадаю в раскрывающееся меню и выбираю вариант «Удалить», он должен передать этот идентификатор некоторому методу Ajax и удалить эту запись из базы данных. Я получаю 500 ошибок. Я думаю, это потому, что я вызываю метод SomeAjaxMethod (id) внутри функции document.ready.

ответ

1

Ваш «удалить» случай, вероятно, должен выглядеть примерно так:

case "Remove": 
    var id = $('.Remove:checked').attr("Remove-something"); 
    SomeAjaxMethod(id) 
    break; 

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

+0

Я получаю сообщение об ошибке: Не удалось найти хранимую процедуру «UPDATE Table SET ColumnName = ColumnName^1 WHERE ID = @ ID». Что я делаю неправильно здесь, я ищу несколько веб-страниц, но я не понимаю? –

+0

Это на вашей стороне сервера. Каков ваш серверный язык? Похоже, вы пытаетесь выполнить прямой оператор SQL в качестве хранимой процедуры. Если вы используете .NET, убедитесь, что вы установили свойство 'CommandType'' SqlCommand' 'StoredProcedure'. Значение по умолчанию - «Текст» (или что-то в этом роде). –

0

Попробуйте

$('.dropdown-menu li a').click(function (e) { 
    var ele = $(this); 
    switch (ele.text()) { 
     case "Add": 
      Do something... 

      break; 

      case "Remove": 
      var id = ele.attr("Remove-something"); 
       SomeAjaxMethod(id) 
      break; 
    } 
}); 
+0

Не работайте, когда я добавляю тормозную точку в var id = ele.attr («Удалить-что-то»); по id он говорит undefined ?. он должен получать значение, которое я выбрал из флажка –

Смежные вопросы