Pagina 1 din 1

Problema executie functia Load la a doua accesare

Scris: Dum Iun 29, 2014
de alexinio3d
Salutare.
Ce nu am facut bine la urmatorul cod??

Cod: Selectaţi tot

$("#dutilizator<?=$utilizator['utilizator_id']?>").click(function(){
  $.ajax({
    type: "POST",
    url: "<?=LINK?>admin/core/utilizator.php",
    data: { q : "dezactiv", id : utilizator_id },
    success: function(){ $("tr#id<?=$utilizator['utilizator_id']?>").removeClass("success").addClass( "danger" );
    $("#load<?=$utilizator['utilizator_id']?>").load(" #load<?=$utilizator['utilizator_id']?>");
    $("#loadstare<?=$utilizator['utilizator_id']?>").load(" #loadstare<?=$utilizator['utilizator_id']?>"); }
  });
});
Acest cod imi trimite niste date prin jquery la un fisier php care imi actualizeaza baza de date fara refrash sau alte cele, dar problema ca daca apas pe butonul care imi face asa ceva a doua oara nu mai merge acel buton doar daca dau refrash la pagina .

Problema executie functia Load la a doua accesare

Scris: Lun Iun 30, 2014
de MarPlo
Salut
Incearca sa folosesti Mozilla Firefox cu addon-ul FireBug sa vezi daca apare vreo eroare javascript in consola, sau daca arata ceva dupa clic pe acel buton.
Daca mai e necesar, poti adauga aici codul html /javascript asa cum apare in sursa paginii in browser.

- Acel cod PHP din jquery se proceseaza o singura data, pe partea de server, cand e generata pagina, la urmatoarele apasari de buton, acele date generate de php in codul javascript raman ca la inceput, cand s-a incarcat pagina, caci php nu se executa in browser dupa incarcarea paginii.

Problema executie functia Load la a doua accesare

Scris: Joi Iul 03, 2014
de alexinio3d
Deci acele coduri php din jquery is id-urile utilizatorilor care leam luat din baza de date si leam pus la atributul id pentru a putea sa diferentiez butonul dupa care sa dea actualizare date, iar cand se actualizeaza in baza de date nu se actualizeaza si id utilizatorului, deci nu are de ce sa schimbe numele atribului id. ( asa ma gandesc eu )

Am instalat add-onsul FireBug si numi da nici o eroare, iar codul html & javascript dinainte si dupa apasare sunt urmatoarele ( pun prima data cea dinainte sa se dea click pe buton si apoi dupa ce sa apasat pe buton ) :

1. Inainte sa se dea click pe buton: treisute.ro/htmlbutonprimary.txt
2. Dupa ce dau click pe buton: treisute.ro/htmlbutonnew.txt

Problema executie functia Load la a doua accesare

Scris: Vin Iul 04, 2014
de MarPlo
Am incercat sa testez putin, in consola apare ca se executa functia ajax si la a doua apasare pe buton (caci se vede ca acceseaza locatia pe server).
Probabil ca datele adaugate in pagina, in codul html, dupa raspunsul de la server, sau efectele cu Bootstrap, afecteaza structura DOM si inregistrarea evenimentului "click" la buton, caci se schimba structura HTML DOM.
Oricum, e doar o parere, nu stiu sigur daca asta e cauza, si nici solutia fiidca e prea mult cod.
- Ca idee, incearca fara Bootstrap, sa vezi daca functioneaza fara acele efecte.

Problema executie functia Load la a doua accesare

Scris: Vin Iul 04, 2014
de alexinio3d
La fel ... Tot numi merge nici daca dezactivez bootstrap-ul, nustiu ce sai mai fac .

Problema executie functia Load la a doua accesare

Scris: Vin Iul 04, 2014
de MarPlo
Poate functia load() nu e corecta, desi daca la prima accesare functioneaza ..., nu stiu ce sa zic. Dar in documentatia jQuery am vazut ca la load() se adauga adresa paginii accesate.

Cod: Selectaţi tot

$( "#result" ).load( "adresa_pagina" );

// Sau:
$( "#result" ).load( "adresa_pagina", function() {
  alert( "Load was performed." );
});

Sau:
$( "#result" ).load( "adresa_pagina #container" );
- In metoda a treia, cu #container, elementul html cu id="container" trebuie sa fie in pagina incarcata. Poate si asta e o cauza, la pagina accesata, asta daca functia load() se executa; o poti testa cu varianta a doua, cu alert().
Vezi Tutorial: jQuery Ajax - metoda load()

Daca problema e la metoda "click", ca nu se executa la apasare pe buton, o solutie mai directa ar fi sa adaugi intr-o functie codul care este executat la clic pe acel buton, iar in tag-ul butonului aplici "onclick".

Cod: Selectaţi tot

<input type="button" id="dutilizator<?=$utilizator['utilizator_id']?>" onclick="dezact(<?=$utilizator['utilizator_id']?>)" value="Dezactivare" />
<script>
function dezact(id_usr){
  $.ajax({
    type: "POST",
    url: "<?=LINK?>admin/core/utilizator.php",
    data: { q : "dezactiv", id : utilizator_id },
    success: function(){ $("tr#id"+ id_usr).removeClass("success").addClass( "danger" );
    $("#load"+ id_usr).load("ADRESA_PAGINA #load"+ id_usr);
    $("#loadstare"+ id_usr).load("ADRESA_PAGINA #loadstare"+ id_usr); }
  });
});
</script>
- Alta idee nu mai am. Incearca sa faci teste cu alert() in diferite parti din cod, sa vezi daca se acceseaza acea funtie, ce date se primesc, etc., si asa iti poti da seama unde e problema si tot acolo cum sa o rezolvi.