मैं अपनी वेबसाइट पर एक सीआरयूडी फ़ंक्शन बना रहा हूं। मैं तुरंत डेटा लोड करने के लिए अजाक्स का उपयोग कर रहा हूं लेकिन यह मेरे लिए काम नहीं करेगा।

अब तक मैं देख रहा हूं कि उन्हें एक बटन क्लिक करने या समय अंतराल सेट करने की आवश्यकता है, लेकिन मुझे यह नहीं चाहिए। मेरे कोड में क्या गलत है या क्या कमी है?

मेरा एचटीएमएल इस तरह दिखता है

<div class="card-body">
   <div id="blog_table">                    
   </div>
</div>

<script>
  $( document ).ready(function() {
    $("#blog_table").load("functions/blog_list.php",{
    });
  });
</script>

मेरा PHP कोड

<?php include "../../function.php";
    $user_id = $_SESSION['id'];
    $select_blogs = query("SELECT blog_id, blog_title, create_date FROM user_blog WHERE user_id = '{$user_id}'");
    $result = confirm($select_blogs);
echo '<table class="table">
          <thead>
            <tr>
                <th>Title</th>
                <th>Date Creasdawsdated</th>
            </tr>
          </thead>';
    if(row_count($select_blogs) > 0){
        while($row = fetch_assoc($select_blogs)){   
        echo "<tr>
             <td>".$row['blog_id']."</td>
             <td>".$row['blog_title']."</td>
             <td class='text-right py-0 align-middle'>
                <div class='btn-group btn-group-sm'>
                    <button href='blog_view?id=".$row['blog_id']."'' class='btn btn-info'><i class='fas fa-eye'></i></button>
                    <button id='".$row['blog_id']."'' class='btn btn-danger' onclick='deleteFunction(this.id)'><i class='fas fa-trash'></i></button>
                </div>
            </td>
            </tr>";
    }   
}
?>

जब भी मैं डिलीट बटन पर क्लिक करता हूं। यह सिर्फ डेटा हटाता है लेकिन तालिका परिवर्तनों को लोड नहीं करती है।

यह मेरे डिलीट बटन का कार्य है।

function deleteFunction(id) {
  event.preventDefault();
  var blog_id = id;
  Swal.fire({
    title: 'Are you sure you want to delete this blog?',
    text: "You won't be able to revert this!",
    icon: 'warning',
    showCancelButton: true,
    confirmButtonColor: '#d33',
    cancelButtonColor: '#3085d6',
    confirmButtonText: 'Yes, delete it!'
  }).then((result) => {
    if (result.isConfirmed) {
      $.ajax({
        method: 'POST',
        data: {'delete': true, 'blog_id' : blog_id },
        url: 'functions/blog_delete.php',
        success: function(data) {

        }
      });
    
      Swal.fire(
        'Deleted!',
        'Your blog has been deleted.',
        'success'
      )


    }
  })

  }

डिलीट फंक्शन की PHP फाइल।

<?php include "../../function.php";


$blog_id = escape_string($_POST['blog_id']);

$query = "DELETE FROM user_blog where blog_id = '{$blog_id}'";
$final_query = query($query);
confirm($final_query);

echo $final_query;
echo $query;

?>
-1
Andrywin Maquinto 29 अगस्त 2021, 15:47

2 जवाब

सबसे बढ़िया उत्तर

जब आप .load() फ़ंक्शन को $(document).ready() में जोड़ते हैं, तो आप jQuery को पेज लोड पर एक बार लोड करने के लिए कह रहे हैं, जब दस्तावेज़ तैयार हो। मतलब, यह तब तक फिर से अपडेट नहीं होगा जब तक आप या तो फिर से फ़ंक्शन नहीं चलाते या आप पेज को रीफ्रेश नहीं करते।

यदि आप डेटा रीफ्रेश करना चाहते हैं उदा। जब आप डिलीट बटन दबाते हैं, तो फ़ंक्शन को फिर से चलाएँ, उदा। आपके deleteFunction() में।

1
olafmoriarty 29 अगस्त 2021, 13:00

स्वीट अलर्ट के बाद प्रयोग करें फिर कार्य करें।

Swal.fire(
  'Deleted!',
  'Your blog has been deleted.',
  'success'
).then(function() {
  $("#blog_table").load("functions/blog_list.php", {});
});
1
Red-Dot 30 अगस्त 2021, 08:11