AJAX i MYSQL

0

Witam,
Mam następujący problem. Pobieram dane z bazy mysql ogłoszenia i mam stworzony przycisk usun za pomocą którego chciałbym usunąć ogłoszenie. Przycisk jest tworzony tak:

<input type="submit" value="usun" onclick=\'pobierzDane6("usun.php","klawisz1");return false;\'><input type="hidden"   id5="'.$rekord['nrOgloszenia'].'"  value="'.$rekord['nrOgloszenia'].'>

Dobrze to jest zrobione?? Jak mam za pomocą ajax pobrać wartość??
Proszę o pomoc. Dziękuje
</php>

0

Nigdzie nie przekazujesz do funkcji informacji do którego rekordu w bazie odnosi się ten przycisk.

0

No mam w w input hidden value tam jest $rekord['nrOgloszenia'] chce to przekazać do ajaxa i skorzystać z pliku php gdzie usuwa. Na poczatku ustawiłem id='id1' ale napisano że id jest taki sam dla wszystkich ten sam, wartość się nie zmieniała, i powinnem id nadawac wartość ogłoszenia czyli $rekord['nrOgloszenia']. Dobrze tak zrobiłem ale jak mam teraz to odczytać w ajax??

0

Nie wolno mieć na stronie dwóch elementów o tym samym ID. O to chodzi w ID. Jest unikalne w całym dokumencie. Dlatego dawanie wszędzie id równego "od1" jest nieprawidłowe. A oprócz tego jest jeszcze bez sensu.

Powiedz teraz, skąd funkcja pobierzDane ma Twoim zdaniem wiedzieć, że kliknięty został przycisk powiedzmy trzeci, a nie drugi?

Wywołujesz tę funkcję tak (co widać w wartości atrybutu onclick) dla klawisza trzeciego:

pobierzDane6("usun.php","klawisz1");

A tak dla drugiego:

pobierzDane6("usun.php","klawisz1");

Widzisz różnicę? Nie? Ja też nie. I to jest problem. Jakie argumenty dostaje teraz ta funkcja, tak w ogóle? "usun.php" sugeruje, że pierwszy argument formalny funkcji to nazwa skryptu, do którego Ajax ma wysłać żądanie. A drugi, "klawisz1", do czego służy?

0

Ten drugi klawisz1 to miałbyć div w którym pojawią się dane, tzn. wykona się skrypt i tam pojawią się jakieś informacje. Uczę się dopiero programować, więć sorki za błędy. Jak to najlepiej rozwiązać??

0

Po prostu w funkcji pobierzDane6 (6? czemu 6?) ajax musi przekazać skryptowi PHP numer usuwanego ogłoszenia. A więc sama funkcja musi ten numer dostać. Należy więc przekazać jej kolejny, trzeci argument z numerem ogłoszenia (albo z całym id ogłoszenia).

Musisz zmienić funkcję pobierzDane6 tak, by miała trzeci argument formalny oznaczający ten numer ogłoszenia i numer ten przesyłała potem na serwer, do usun.php.

Następnie oczywiście musisz zmodyfikować wywołanie funkcji pobierzDane6 -- musisz podawać jej ten trzeci parametr aktualny z numerem ogłoszenia. Funkcję wywołujesz w onclick, więc to onclick musisz zmodyfikować tak:

onclick=\'pobierzDane6("usun.php","klawisz1", "' . $rekord['nrOgloszenia'] . '");return false;\'

Oczywiście do tej zmiany musi być dostosowana sama definicja funkcji pobierzDane6, a także plik usun.php. W tym pliku PHP zapewne będziesz musiał obsłużyć parametr z ID ogłoszenia, ale to już chyba masz zrobione, bo bez tego plik ten byłby bezużyteczny (nie wiedziałby, jaki rekord usunąć).

0

Ten ajax co pobiera z php mam tak zrobione, jak musiałbym zmienić aby odbierał dane??

function pobierzDane6(src,dest,){
var XMLHttpRequestObject6 = false;

if (window.XMLHttpRequest){
XMLHttpRequestObject6 = new XMLHttpRequest();
}
else if(window.ActiveXObject){
XMLHttpRequestObject6 = new ActiveObject("Microsoft.XMLHTTP");
}

if(XMLHttpRequestObject6){

var div=document.getElementById(dest)

var url = src;
XMLHttpRequestObject6.open("POST",url);
XMLHttpRequestObject6.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
XMLHttpRequestObject6.onreadystatechange=function()
{
if(XMLHttpRequestObject6.readyState==4&&XMLHttpRequestObject6.status==200){

var str=XMLHttpRequestObject6.responseText;

div.innerHTML=str;

delete XMLHttpRequestObject6;

}
}

var id1=document.getElementById('id5').value;

XMLHttpRequestObject6.send("id1="+id1);

}}

Dziękuje za pomoc

0

Dobra już zrobiłem. Temat do zamknięcia

1 użytkowników online, w tym zalogowanych: 0, gości: 1