По сути, у меня есть таблица, отображающая несколько строк с кнопкой удаления рядом с ними.Когда кто-то нажимает на кнопку удаления, я беру идентификатор этой кнопки, передаю его в скрипт php, удаляю запись из базы данных, а затем исчезаю со страницы.Вот код:
$(".remove-button").live('click', function(){
var remove_ptype = encodeURIComponent($(this).attr("id"));
$.ajax({
type: "POST",
dataType : "html",
url: "script.php",
data: "id of remove button goes here",
success: function(msg){
//Do nothing
}
});
$(this).parent().parent().fadeOut(500);
});
ОК, следующий шаг.Также есть кнопка добавления, которая открывает диалог, который затем обрабатывает скрипт, возвращает некоторые данные и добавляет, добавляет еще одну строку для введенных данных.Этот скрипт также возвращает идентификатор для кнопки удаления, которая затем будет использоваться вышеуказанным кодом.Вот добавочный код:
$("<tr>" +
"<td>" + unescape(name) + "</td>" +
"<td width=\"250\">" + "<img src=\"" + siteurl + "/images/x-button.png\" id=\"" + name_id + "\" class=\"remove-button\" width=\"20\">"+ "</td>" +
"</tr>").appendTo( "#ptypes tbody" );
Так что до сих пор это прекрасно работает.Теперь, когда я пытаюсь удалить эту недавно добавленную строку без обновления страницы, она действительно удаляется с экрана, но я не могу подобрать идентификатор этой недавно добавленной кнопки .remove и передать ее в мой php-скрипт.Я знаю, что это возможно, как я видел это раньше в других приложениях (например, в basecamp).Итак, кто-нибудь может подсказать, как мне это сделать?
К вашему сведению, я использую JQuerUI для создания диалогового окна и т. Д.
Большое спасибо за вашу помощь!
ДОПОЛНЕНИЕ К ОРИГИНАЛЬНОМУ СООБЩЕНИЮ
ОК, поэтому идентификатор действительно не показывался.У меня есть это, чтобы показать, и это работает, но у меня все еще есть проблема.Вот код для моего jQUERY:
$( "#add-type-form" ).dialog({
autoOpen: false,
height: 350,
width: 500,
modal: true,
buttons: {
"Add": function() {
var type_name = encodeURIComponent($('#type_name').attr('value'));
var type_id = '';
if (type_name != "") {
//Submit form
$.ajax({
type: "POST",
dataType : "html",
url: "script.php",
data: "f=1" + "& ff=2" + "MORE STUFF",
success: function(msg){
types_id = msg;
}
});
type_id = types_id;
//Append to display
$("<tr>" +
"<td>" + unescape(type_name) + "</td>" +
"<td width=\"250\">" + "<img src=\"" + siteurl + "/images/x-button.png\" id=\"" + type_id + "\" class=\"remove-type-button\" width=\"20\">"+ "</td>" +
"</tr>").appendTo( "#ptypes tbody" );
$( this ).dialog( "close" );
}},
Cancel: function() {
$( this ).dialog( "close" );
}
},
close: function() {
allFields.val( "" ).removeClass( "ui-state-error" );
}
});
Так что это JQUERYUI diagloue, который в основном обрабатывает скрипт, возвращает идентификатор, который я хочу присвоить моему тегу img.Беда в том, что по какой-то причине кнопку добавления нужно нажать дважды.Если я удалю строку, в которой я присваиваю значение моему type_id varaible после функции ajax, то есть:
type_id = types_id;
, я не могу получить идентификатор типа.Если линия остается там, дважды нажмите кнопку «Добавить».Я не уверен, почему это происходит.Я уверен, что это мой недостаток знаний JS, поэтому я ищу помощи, потому что я не вижу ничего плохого в объявлении переменной как таковой.
Еще раз спасибо!