Quiero hacer una llamada AJAX cuando el usuario haga clic en una casilla de verificación. La llamada envía una identificación junto con el estado de la casilla de verificación. En este momento, cuando hago clic en mi casilla de verificación, crea dos llamadas AJAX, una con la primera identificación en la lista y la otra es correcta en la que hice clic.
¿Cómo puedo enviar una llamada ajax de la casilla de verificación en la que hice clic?
Tengo cientos de filas con la identificación del cliente 1000, 1001, 1002, etc. En este momento, la llamada AJAX siempre es 1000 y una llamada ajax con la identificación del cliente en la que hice clic. Digamos que hago clic en la casilla de verificación en la fila con la identificación del cliente 1005, entonces la llamada AJAX en este momento es:
testurl&cid=1000&checkbox=1 testurl&cid=1005&checkbox=1 $document.on('change', '.toggle-checkbox', function() { var $this = $(this); var customerid = $row.data('customerid'); var checkState = ''; if ($(this).is(':checked')) { checkState = 1; } else { checkState = 0; } $.ajax({ url: base_url + "testurl", type: "GET", data: { cid: customerid, checkbox: checkState }, success: function(result) { console.log('succesful change'); }, error: function(xhr, status, error) { console.log('unsuccesful change'); } }); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <tr class="test-row" data-customerid="1000"> <td data-content="Customer ID" class="" style="max-width:700px">1000</td> <td class="toggle-checkbox" data-content=""> <div class="custom-control custom-switch no-click"> <input type="checkbox" checked="checked" class="custom-control-input toggle-checkbox" id=""> <label class="custom-control-label" for=""> </label> </div> </td> </tr>¿Por qué no pruebas esto?
url: base_url + "testurl?cid="+ customerid+"&checkbox="+checkState,y eliminar "datos:..." de ajax
si sigue sin funcionar entonces
<input type="checkbox" id="row1000" checked="checked" class="custom-control-input toggle-checkbox" >javascript
var customerid = this.id.substring(3);