Tengo un problema. Quiero intercambiar ciertos datos usando PHP, MySQL y Ajax.
Para hacer esto, siempre tengo que pasar la ID de un campo a mi backend, para poder seguir trabajando con esta ID.
¿Cómo paso el valor de mi botón a mi URL en Ajax? ¿Qué tengo que considerar? fila['id'] es mi variable (PHP)
Código HTML:
<a class='commentSikayet'> <button id='commentSikayet' name='commentSikayet' value='{$row['id']}'> Şikayet et </button> </a>Ajax:
$(document).ready(function () { $("#commentSikayet").click(function () { $.ajax({ url: 'report_comment.php', type: 'POST', data: {bar: $("#bar").val()}, success: function (result) { alert('Erfolgreich gemeldet.'); } }); }); });Como está escuchando el evento de clic en el botón, puede acceder a él a través de this en su función de controlador.
Agregue el par nombre/valor a su opción data AJAX
$("#commentSikayet").on("click", function (e) { e.preventDefault(); $.post("report_comment.php", { bar: $("#bar").val(), [ this.name ]: this.value // add name / value in here }).done(function (result) { alert('Erfolgreich gemeldet.'); }); }); Esto incluirá commentSikayet=rowIdValue en el cuerpo de la solicitud POST al que accede en el lado de PHP a través de...
$rowId = $_POST["commentSikayet"];Suponiendo que puede haber más de un conjunto de datos en su página, modifiqué su ejemplo al siguiente fragmento. Cada botón tiene un atributo data-id que identifica el conjunto de datos actual (la identificación se proporcionaría a través de su script PHP como $row["id"] ):
$("body").on("click","button", function(ev){ ev.preventDefault(); // prevent submitting a form ... let data={cmt_id: $(this).data("id"), value: $(this).prev().val()} $.post("https://jsonplaceholder.typicode.com/comments",data) .done(function (result) { console.log("Erfolgreich gemeldet:",result); }); }); <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <div><input type="text" value="some text"> <button name="commentSikayet" data-id="123">Şikayet et</button></div> <div><input type="text" value="some other text"> <button name="commentSikayet" data-id="124">Şikayet et</button></div> <div><input type="text" value="more text"> <button name="commentSikayet" data-id="125">Şikayet et</button></div> En su secuencia de comandos PHP backend (que ocupa el lugar de la URL de código tipo anterior) puede recoger los valores de $_POST superglobal como
$_POST["cmt_id"]; // id value $_POST["value"];. // actual text content