Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] usuwanie rekordu / wpisu z bazy
arkoslaw
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 1
Dołączył: 31.10.2009

Ostrzeżenie: (0%)
-----


Witam, mam problem ze skryptem usuwajacym rekordy z bazy, rzecz wydaje sie banalna ale troche sie komplikuje po podpieciu php pod jQuery...podczas szukania rozwiazania natknalem sie na taki skrypt(link: LINK)

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function() {
  2. $('a.delete').livequery('click', function(e) {
  3. e.preventDefault();
  4. var parent = $(this).parent();
  5. $.ajax({
  6. type: 'get',
  7. url: 'linki/show_news.php',
  8. data: 'ajax=1&delete=' + parent.attr('id').replace('record-',''),
  9. beforeSend: function() {
  10. parent.animate({'backgroundColor':'#fb6c6c'},300);
  11. },
  12. success: function() {
  13. parent.slideUp(300,function() {
  14. parent.remove();
  15. });
  16. }
  17. });
  18. return false;
  19. });
  20. });
[JAVASCRIPT] pobierz, plaintext

+taki skrypt PHP
  1. if(isset($_GET['delete']))
  2. {
  3. $query = 'DELETE FROM news WHERE id_news = '.(int)$_GET['delete'];
  4. $result = mysql_query($query);
  5. }
  6. while($newsy = mysql_fetch_array($query))
  7. {
  8. echo '<div class="record" id="record-',$newsy['id_news'],'">
  9. <a href="?delete=%27,$newsy[%27id_news%27],%27" class="delete">Delete</a>
  10. <strong>',$newsy['tytul'],'</strong>
  11. <strong>',$newsy['autor'],'</strong>
  12. <strong>',$newsy['tresc'],'</strong>
  13. <strong>',$newsy['data'],'</strong>
  14. <strong>',$newsy['tytul'],'</strong>
  15. </div>';


Animacja dziala czyli zwija elegancko rekordy ale nie usuwa z bazy rekordow.
Patrzyłem pod FireBugiem no i zatrzymuje się przy parent.remove ale i tak zwija sie dany rekord. Id danego rekordu tez dobrze odczytuje wiec jest to pewnie wina IFa lub tego dziwnego zapytania...

Chodzi mi o jak najprostszy skrypt zeby go tylko mozna bylo podpiac pod jQuery, probowalem z innymi skryptami ale dzilaja tylko wtedy gdy mam return true czyli przekierowanie do nastepnej strony, a musze zrobic tak zeby to zapytanie bylo wykonywane po stronie przegladarki.

Mam nadzieje, że ktoś sie zainteresuje tym problemem bo siedze nad tym od wczoraj;/
P.S. Możliwe, że wina leży po stronie pluginu LivQuery?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
vokiel
post
Post #2





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


Sam sobie donate nie zrobię, chyba że w sygnaturce (IMG:style_emoticons/default/winksmiley.jpg) Jednak nie z tego powodu tu pomagam, żeby na tym zarabiać. Kiedyś mi też bezinteresownie pomagano.

Wracając do tematu, to z tym delete to akurat mój błąd. Zapomniałem, że to jest funkcja js, która usuwa właściwość obiektu, to miało być jedno z pól. Trzeba to zmienić np na usun, a następnie po stronie php też.
[JAVASCRIPT] pobierz, plaintext
  1. $.ajax({
  2. type: 'get',
  3. url: 'linki/show_news.php',
  4. data: {ajax: 1, usun: parent.attr('id').replace('record-','')},
  5. beforeSend: function() {
  6. parent.animate({'backgroundColor':'#fb6c6c'},300);
  7. },
  8. success: function() {
  9. parent.slideUp(300,function() {
  10. $(this).remove();
  11. });
  12. }
  13. });
[JAVASCRIPT] pobierz, plaintext

No i w php:
  1. if(isset($_GET['usun']) && !empty($_GET['usun'])){
  2. $query = 'DELETE FROM news WHERE id_news = '.(int)$_GET['usun'];
  3. $result = mysql_query($query);
  4. }


Paginacja w jquery polega tylko na tym, aby wysłać do skryptu php numer strony, i otrzymane wyniki wpisać w jakiś kontener.

Do paginacji polecam klasę Nospora: Pager. Co prawda do jQuery trzeba ją troszeczkę przerobić, gdyż opiera się o advAjax. Ale to nie problem, możesz napisać klasę dziedziczącą po Pager, która zaimplementuje swój sposób generowania pagera. W zasadzie wystarczy Ci jedna metoda:

  1. class Vpager extends Pager{
  2. protected function createHTMLLink($title, $link, $text,$page) {
  3. return '<a class="jquery_pager" title="'.$title.'" href="'.$link.'" rel="'.$page.'">'.$text.'</a>';
  4. }
  5. }


Tej klasy używasz tak jak pierwotnej Nospora, poza tym, że nie dołączasz advAjax, tylko w jQuery piszesz prostą obsługę:

[JAVASCRIPT] pobierz, plaintext
  1. $('a.ranking_pager').livequery('click',function(e){
  2. e.preventDefault();
  3. var page = $(this).attr('rel');
  4. if(loading===false){
  5. loading = true;
  6. $.ajax({
  7. url: "paginator.php",
  8. type: "GET",
  9. data: ({page: page}),
  10. success: function(data){
  11. $('#destination').html(data);
  12. loading = false;
  13. },
  14. error: function(XMLHttpRequest,error,textStatus){
  15. loading = false;
  16. }
  17. });
  18. }
  19. });
[JAVASCRIPT] pobierz, plaintext

Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 18.10.2025 - 02:02