私は、好きな記事を追加し、上部の小さな x をクリックしてリストから削除できる読書リストをコーディングしようとしています。JQuery .click を使用してデータベースからストーリーを削除し、リストから削除します。しかし、一度に複数の記事を削除しようとすると、最後にクリックした記事しか削除されません。私はそれが何であるかわかりません。グローバル変数とローカル変数を使ったものかもしれないと思ったのですが、どこから始めればいいのかわかりません。
以下は HTML の一部で、削除したものと同様の div です。
<li id="arrayorder_146">
<div class="reading_list drop-shadow lifted">
<div class="reading_list_container">
<a class="deletefromrl" data-storyid="146" data-parent="arrayorder_146">x</a>
<p class="reading_list_story">
<a class="rlstory" href="" data-storyid="146">iSteal: Apple Products Cause NYC Crime Wave
</a></p></div></div></li>
JQuery関数は次のとおりです。
$(document).ready(function(){ $(function() {
$('a.deletefromrl').click(function(){
$(this).closest('li').fadeOut('slow');
var order = $('#list ul').sortable("serialize") + '&update=update' + '&id=' + $(this).attr('data-storyid');
$.post("deletefromReadingList.php", order, function(theResponse){
$("#response").html(theResponse);
});
php の deletefromReadingList は次のとおりです。
<?php
require_once('compress.php');
require_once('startsession.php');
require_once('admin_start_session.php');
require_once('db_connect_variables.php');
require_once('input_variables.php');
$array = $_POST['arrayorder'];
$id = $_POST['id'];
if ($_POST['update'] == "update")
{
$user_id = $_SESSION['user_id'];
$admin_id = $_SESSION['admin_id'];
$listorder = '';
$i=0;
foreach ($array as $idval)
{
if(($idval == $id) && ($i == 0))
{
$i++;
continue;
}
$listorder = $listorder . $idval . ',';
}
$listorder = substr_replace($listorder ,"",-1);
if(!empty($user_id) && empty($admin_id))
{
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query = "UPDATE reading_list SET listorder = " . $listorder . " WHERE user_id = " . $user_id;
mysql_query($query) or die('Error, insert query failed');
echo 'Saved until 9AM Tomorrow';
}
else if(empty($user_id) && !empty($admin_id))
{
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$query = "UPDATE reading_list SET listorder = '" . $listorder . "' WHERE admin_id = " . $admin_id;
mysqli_query($dbc, $query) or die('Error, insert query failed');
echo 'Saved until 9AM Tomorrow';
}
else
{
$_SESSION['readinglist'] = $listorder;
setcookie('readinglist', $listorder, mktime(6, 59, 59, date('m'), (date('d')+1), date('y'))); // expires at midnight
echo 'Saved until 9AM Tomorrow';
}
}
?>