基本的に、テーブルにはいくつかの行が表示され、その横に削除ボタンがあります。誰かが削除ボタンをクリックすると、そのボタンのIDを取得し、それを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);
});
OK、次のステップ。また、ダイアログを開く追加ボタンがあります。このボタンは、スクリプトを処理し、データを返し、入力されたデータの別の行を追加します。このスクリプトは、上記のコードで使用される削除ボタンのIDも返します。追加コードは次のとおりです。
$("<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-buttonのIDを取得して、phpスクリプトに渡すことができません。他のアプリケーション(basecampなど)で以前に見たように、それが可能であることはわかっています。それで、誰かが私がこれを達成する方法について私を案内してくれますか?
参考までに、JQuerUIを使用してダイアログボックスなどを作成しています。
どうもありがとうございました!
元のメッセージへの追加
OK、IDは実際には表示されませんでした。表示されて動作しますが、まだ問題があります。これが私の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タグに割り当てたいIDを返します。問題は、何らかの理由で追加ボタンを2回押す必要があることです。ajax関数の後にtype_id変数に値を割り当てる行を削除すると、次のようになります。
type_id = types_id;
タイプIDを取得できません。行がそこにとどまる場合は、追加ボタンを2回クリックする必要があります。なぜそうなっているのかわかりません。JSの知識が不足していると思いますので、変数宣言自体に問題はないと思いますので、助けを求めています。
再度、感謝します!