如何在 Ajax 中将按钮值作为变量传递?
How do I pass Button Value as a variable in Ajax?
我有问题。我想使用 PHP、MySQL 和 Ajax.
交换某些数据
为此,我总是必须将字段的 ID 传递到我的后端,这样我才能继续使用这个 ID。
如何将按钮的值传递到 Ajax 中的 URL?
我需要考虑什么?
row['id'] 是我的变量 (PHP)
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.');
}
});
});
});
由于您正在监听按钮上的 click 事件,因此您可以通过处理函数中的 this
访问它。
将名称/值对添加到您的 AJAX data
选项
$("#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.');
});
});
这将在 POST 请求正文中包含 commentSikayet=rowIdValue
,您可以通过...
在 PHP 端访问该请求正文
$rowId = $_POST["commentSikayet"];
假设您的页面中可能有多个数据集,我将您的示例修改为以下代码段。每个按钮都有一个 data-id
属性来标识当前数据集(id 将通过您的 PHP 脚本作为 $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>
在你的后端 PHP 脚本中(取代上面的 typicode-URL)你可以从 $_POST
超全局中获取值作为
$_POST["cmt_id"]; // id value
$_POST["value"];. // actual text content
我有问题。我想使用 PHP、MySQL 和 Ajax.
交换某些数据为此,我总是必须将字段的 ID 传递到我的后端,这样我才能继续使用这个 ID。
如何将按钮的值传递到 Ajax 中的 URL? 我需要考虑什么? row['id'] 是我的变量 (PHP)
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.');
}
});
});
});
由于您正在监听按钮上的 click 事件,因此您可以通过处理函数中的 this
访问它。
将名称/值对添加到您的 AJAX data
选项
$("#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.');
});
});
这将在 POST 请求正文中包含 commentSikayet=rowIdValue
,您可以通过...
$rowId = $_POST["commentSikayet"];
假设您的页面中可能有多个数据集,我将您的示例修改为以下代码段。每个按钮都有一个 data-id
属性来标识当前数据集(id 将通过您的 PHP 脚本作为 $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>
在你的后端 PHP 脚本中(取代上面的 typicode-URL)你可以从 $_POST
超全局中获取值作为
$_POST["cmt_id"]; // id value
$_POST["value"];. // actual text content