Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: AJAX + DELETE rekord + Jquery
Forum PHP.pl > Forum > XML, AJAX
ex53
Witam,

Tworze mały system zarządzania aktualnościami na stronie.

1)Listuje mi poszczególne aktualności z bazy danych - przy każdej z nich jest opcja edycji oraz usunięcia.

Postać linku wygląda tak:
@$result="SELECT id,tytul,data,foto1,tekst FROM aktualnosci ORDER BY data DESC";
@$aktualnosci=mysql_query("SET NAMES 'utf8'");
@$aktualnosci=mysql_query($result);

while($row=mysql_fetch_array($aktualnosci)){
<a id="usun" href="index.php?strona=dodawanie&amp;akcja=usun&amp;id='.$row['id'].'">usuń</a>
}



Gdy kliknie się USUŃ wykonuje się jQuery ConfirmDialog i wyskakuje komunikat czy chce na pewno usunąć, skrypt jQuery wygląda tak:


</script>
<script type="text/javascript">
$(function() {

$(".dialog-confirm").dialog({
resizable: false,
modal: true,
height:240,
autoOpen: false,

buttons: {
'Usuń': function() {
$(this).dialog('close');
},
Anuluj: function() {
$(this).dialog('close');
}
}
});
$('#usun').click(function() {
$('.dialog-confirm').dialog('open');
return false;
});

});
</script>

PHP tak:


//DIALOG
echo '<div class="dialog-confirm" title="Potwierdzenie usunięcia">';
echo'<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Aktualność zostanie usunięta.Czy jesteś pewien, aby kontynuować usuwanie?</p>';
echo '</div>';


PROBLEM:

Nie wiem jak dopisać akcje(funkcje) do poszczególnych buttonów (USUŃ/ANULUJ) . Anuluj jest załatwione bo poprostu DIALOG.close.
Chciałbym aby po kliknięciu USUŃ wykonał się skrypt PHP:

$id_do_usuniecia = $_GET['id'];
if ($_GET['akcja']=='usun') {


$zapytanie ="DELETE FROM aktualnosci WHERE id=$id_do_usuniecia";
$wynik = mysql_query($zapytanie) or die ('Nie usunięto produktu, błąd: ' . mysql_error());
}


Wiadomo wszystko działa, gdy nie ma jQuery .
Z tego co wiem to trzeba zapisać do innego pliku kod PHP usuwający z DB i wywołać go AJAXem , ale za nie wiem jak i wierze że mi w tym pomożecie.
Z tego co jeszcze widzę to gdy mam jQuery to po kliknięciu na usuń nie jest wczytywany odpowiedni adres jak w linku :

index.php?strona=dodawanie&amp;akcja=usun&amp;id='.$row['id'].'

gdyż nie jest przeładowana strona.

To tyle moich uwag, czekam na wasze. Wierze, że to nie wymaga zbytniej pracy i to tylko jakiś mały pikuśsmile.gif Ale póki co nie potrafię, ale już nie długo.

thomson89
1. Nie hashuj nigdy linijek.
2. Używaj BBCode
3. Zobacz tu oraz przejrzyj to.

Jak odkopię swój kodzik który ci się powinien przydać to zedytuje post.

--EDIT:

[JAVASCRIPT] pobierz, plaintext
  1. $.post("skrypt2.php", { text: text, akcja: akcja}, //nazwa zmiennej dla php : wartosc (lub na odwrot ; P)
  2. function(result){ //co ma sie dziać po wykonaniu
  3.  
  4. $('#result3').html(result); //to co zwróci php przekazałem do diva result3
  5.  
  6. });
[JAVASCRIPT] pobierz, plaintext


--EDIT2:

Dajesz swoje PHP do osobnego pliku. Dopisujesz do usuń jakiś kod, który sobie wybierzesz (w linkach podałem i tu wyżej też) tak żeby wykonał ten PHP.
ex53
Nie do końca chyba rozumiem to co napisałeś..Mógłbyś jaśniej.
Mam dodać to w taki sposób? Potrzebuje jeszcze pobrać zmiennych, które mają być przekazane do PHP.
Nie trzeba tutaj wykonywać XMLHttpRequest?

Kod
buttons: {
'Usuń': function() {
   $.post("skrypt2.php", { text: text, akcja: akcja}
   function(result){    
      $(this).dialog('close');
   }
},
Anuluj: function() {
$(this).dialog('close');
}
}
});
thomson89
Tak, dokładnie tak jak robisz i powinno działać. Tylko pozmieniaj dane w linijce z $.post. Ale to powinieneś dodać niżej, tam gdzie ustawiasz funkcje dla kliknięcia w "usuń"
ex53
Jak dodam w ten sposób to jquery przestaje działać.
Mianowicie treść która ma się wyświetlić w dialog-confirm odrazu zostaje pokazana. A gdy klikam usuń to nie wyskakuje okno dialog z potwierdzenniem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.