Problema jQuery $.post

Discutii si intrebari legate de scripturi si functii JavaScript, jQuery si Ajax, cod JavaScript in general.
claUdiu
Mesaje: 313

Problema jQuery $.post

Buna seara!

Vreau sa fac o interogare la db, sa selecteze ceva, si sa afiseze in tabel. Asta imi merge. Urmatorul pas este sa fac un div cu id-ul selectat in db, dupa aceea sa fac in jquery ca atunci cand apasa pe acel div sa extraga id-ul, si sa-l trimita intr-un script PHP care o sa-l stearga din db. Ideea este ca totul merge bine, inafara de functia $.post.

Codul este acesta:

Cod: Selectaţi tot

<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){

$('div.site').click(function(){

var site = $(this).attr('id');

$.post('sterge_site.php', {nrsite: site}, function(Data){

alert(Data);

});

});

});
</script>

<?php
mysql_connect("localhost", "root", "eoclaudiuu") or die("Nu ma pot connecta la MySQL");
mysql_select_db("cauta");

$ip = $_SERVER['REMOTE_ADDR'];

$select = mysql_query("SELECT * FROM siteuri WHERE ip = '92.118.164.165'");

echo '<table border="1">';

while ($rez = mysql_fetch_assoc($select)){

$titlu = $rez['titlu_site'];
$descriere = $rez['descriere_site'];
$link = $rez['link_site'];
$id = $rez['id'];

echo '<tr>';
echo '<th>Titlu</th>';
echo '<th>Descriere</th>';
echo '<th>Actiune</th>';
echo '</tr>';
echo '<tr>';
echo '<td><a href="'.$link.'">'.$titlu.'</a></td>';
echo '<td>'.$descriere.'</td>';
echo '<td><div id="'.$id.'" class="site">Sterge</div></td>';
echo '</tr>';


}

echo "</table>";

?>
Iar in pagina sterge_site.php e un cod general:

Cod: Selectaţi tot

<?php
mysql_connect("localhost", "root", "eoclaudiuu") or die("Nu ma pot connecta la MySQL");
mysql_select_db("cauta");

$id = $_POST['nrsite'];

echo $id;
?>
Daca in primul cod, as sterge toata functia $.post si as pune doar alert(site); mi ar arata id-ul din db corect, dar, daca pun functia $.post si il trimit la php, si dupa aceea sa-l afisez de acolo, nu mi-l afiseaza... Care ar putea fi problema? Ms mult.!
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje: 4343
Salut
Incerca in loc de: {nrsite: site} , asa: 'nrsite='+site .
Mai vezi si exemplele de la pagina: jQuery get() si post().

claUdiu Mesaje: 313
Nu.... Nici asa nu merge. Dar, merge alt fel. Sa explic cum am eu site-ul. Am un index.html unde am un div si acolo incarca toate paginile cu funtia load(). IDeea este ca de incarcat merge, dar cand afisez pagina cu site-urile si cu stergerea, nu functioneaza. Pagina functioneaza doar cand intru direct pe ea, si nu cand o incarc cu load in index.html... Cum as putea sa o fac sa mearga si incarcata cu load? Sau...o alta idee despre cum as putea sa o fac...? Multumesc mult!
Se spune ca...."omul tot invata in viata". Dar...Totusi...Trebie sa ne oprim undeva, nu?

MarPlo Mesaje: 4343
Nu prea stiu exact care sa fie solutia.
Probabil elementul 'div.site' e in pagina incarcata cu load, dar cum codul jQuery este executat inainte ca acel element sa fie adaugat in pagina, nu e inregistrat in jQuery.
Cred ca acel cod care inregistreaza evenimentul click la 'div.site' si preia valoarea trebuie adaugat intr-o functie si executat dupa ce e incarcat acel cod cu load(). Cam despre asta e prezentat in tutorialul Inregistrare evenimente la elemente incluse cu jQuery ajax
Daca totusi cauz e alta, nu stiu.

Subiecte similare