私のWebサイトで、画面を更新せずにテーブルのSQLエントリを削除(非表示)しようとしています。
現在、表示されている各エントリは、schedule000のIDを持つdivに表示されます。ここで、000はエントリのID番号です。それぞれに削除ボタンがあります:
<div id="btn_delete" class="schedule-delete" onclick="deleteEvent(schedule'.$row['id'].');"></div>
機能が
function deleteEvent(id) {
var delurl = "..schedule/index.php?d="+String(id.id.substring(8));
$.get(delurl);
$(id).hide('slow');
return false;
}
インターネットを検索したところ、get関数が見つかりましたが、動作しなかったようです。私は提案や新しい解決策を探しています。
ありがとう
補足として:これはそれが呼び出しているページの一部です
if (isset($_GET['d'])) {
$id = $_GET['d'];
$query = "UPDATE schedule SET visible=0 WHERE id='$id'";
if (!(mysql_query($query) or die(mysql_error()))) {
echo 'failed to delete';
}
編集:スヴェンの方法を使用して、私は今持っています:
function del_item() {
try {
var item_id = $(this).attr('item_id');
var item = $(this).parent().parent(); //parent().paren... until you reach the element that you want to delete
$.ajax({
type: 'POST',
url: "../schedule/index.php",
data: { id: item_id},
success: function() {
//fade away and remove it from the dom
$(element).fadeOut(300, function() { $(this).remove(); });
},
error: function() {
alert('failed to delete');
}
});
} catch (err) {
alert(err.message);
}
}
ドキュメントレディ機能と一緒に
if (isset($_POST['action'])) {
if ($_POST['action'] == 'd' && isset($_POST['id'])) {
$id = $_POST['id'];
$query = "UPDATE schedule SET visible=0 WHERE id='$id'";
if (!(mysql_query($query) or die(mysql_error()))) {
echo 'failed to delete';
}
die("J! :)");
}