Cum se obțin valori dintr-o anumită coloană/celulă de casetă bifată într-un tabel de rând?

Am creat un tabel care prezintă rezultatele JSON pentru a elimina orice tip de material, pentru a genera tabelul va adăuga o casetă de selectare, atunci când utilizatorul a bifat caseta de selectare , voi lua datele din prima coloană pentru a implementa astfel o "ștergere de la" și a șterge înregistrările pentru numărul de rânduri care sunt bifate.

Aceasta înseamnă că, dacă sunt bifate 4 rânduri, atunci ar trebui să existe o funcție care să ia datele din prima coloană a fiecărui rând și să le poată trimite prin jQuery.ajax pentru procesare într-un fișier PHP, dar Nu mă pot gândi cum să fac

CODUL DE GENERARE A TABELULUI CU CHECKBOX ÎN FIECARE LINIE

// ...
$.ajax({
type: "POST",
url: action,
data: dataSearch,
success: function (response) {
    if (response[0].success == "success") {
        $('.tableBajaMat tr:gt(0)').remove(); //delete tr except first row
        $.each(response, function (index, record) {
            var row = $("<tr />");
            $("<td />").text(record.clavemat).appendTo(row);
            $("<td />").text(record.tipomat).appendTo(row);
            $("<td />").text(record.titulomat).appendTo(row);
            $("<td />").text(record.autormat).appendTo(row);
            $("<td />").html("<input type='checkbox' id='marcar'/>").appendTo(row);
            row.addClass("alt");
            row.appendTo(".tableBajaMat");
        });
    } else {
        alert("Data not found!");
    }

}
});
return false;
1

1 răspunsuri

O parte înainte de a ajunge la răspunsul meu real: nu ar trebui să atribuiți același id la mai mult de un element html, deși pentru a obține ceea ce doriți să faceți căsuțele dvs. de control nu au nevoie de un id deloc. În schimb, par să utilizați clasa ".tableBajaMat" ca un identificator unic, deci acolo unde trebuie să utilizați id-ul. Dar oricum...

Presupunând că ați creat un buton care declanșează ștergerea pentru casetele de selectare selectate în prezent, ați putea face acest lucru:

<input type="button" id="deleteBtn" value="Delete Selected">

$('#deleteBtn').click(function() {

    var clavemats = [],
        $selectedCBs = $('.tableBajaMat input[type="checkbox"]:checked');

    if ($selectedCBs.length === 0) {
        alert("No rows selected to delete.");
        return;
    }
    $selectedCBs.each(function() {
        clavemats.push( $(this).closest('tr').children(':first').text() );
    });
   //now clavemats is an array of the clavemat values
    $.ajax({
        url : 'yourURLhere.php',
        data : { clavemat : clavemats }
        success : function(data) {
          //whatever you want to do on success goes here
        }
    });

});

Buclele de mai sus prin toate casetele de selectare din tabel. În cadrul .each() apelul acest este căsuța curentă, deci $ (this) .closest ('tr'). .text() primește textul primului copil al elementului tr căsuța de selectare curentă. Aceste valori sunt blocate într-o matrice și apoi matricea este trecută în cererea Ajax cu numele de parametru "clavemat "- evident, puteți schimba asta la orice nume vreți.

2
adăugat
Vă mulțumim pentru răspunsul dvs., se dovedește câteva ore și se publică rezultatele!
adăugat autor SoldierCorp, sursa
Functioneaza! ... Dar nu prea mult probleme, după trimite matrice matvemat, cum se primesc în fișier PHP să se aplice DELETE din tabelul în cazul în care cve = element_array ??
adăugat autor SoldierCorp, sursa
Ohh, văd, nu vă faceți griji .. Ultima întrebare, în alte funcții cu jquery.ajax, am trimite date în acest fel, var formSerialized = $ ('# formAltaMaterial') serializeArray (); formSerialized.push ({nume: 'tag', valoare: 'newMaterial'}); .... și atunci când proces în fișierul PHP său ușor, dar în ur cod doar a crea matrice fără indici ... apoi ... în acest fel am putea genera un matrice cu index sau json format în loc array simplu?
adăugat autor SoldierCorp, sursa
Ne pare rau, nu sunt un tip PHP - eu fac Java sau .NET (deci, desi uneori am vazut probleme cu codul PHP existent, nu stiam cum sa scriu acest tip de functie de la zero).
adăugat autor nnnnnn, sursa