javascript - Ajax 调用动态加载的行
问题描述
我已经动态加载(基于搜索结果)内容。(见下文)
(stackoverflow 不允许我嵌入图像,因为我还是新手)
https://i.imgur.com/WVVc0wM.png
以上代码;
echo '
<td><a href="profile/?student='.$row['sid'].'">'.$row['use_name'].'</a></td>
<td>'.$row['admission_number'].'</td>
<td>'.$row['dob'].'</td><td>Not Assigned</td>
<td>
<form>
<input type="hidden" name="sid" class="sid" value="'.$row['sid'].'">
<input type="hidden" name="classID" class="classID" value="1">
<button class="btn btn-warning btn-sm add" type="button" name="add"><i class="fas fa-pencil-alt"></i> Add</button>
</form>
</td>
<td>
<div id="res"></div>
</td></tr>';
}
我想将 , 传递sid
给classID
一个名为add-student.php
$(".add").click(function() {
$.ajax({
type: "POST",
url: "add-student.php",
data:'sid='+$(".sid").val()+'&cid='+$(".classID").val(),
success: function(data) {
alert(data);
}
});
return false;
});
</script>
以下是add-student.php
<?php
require('../../dbc/dbconn.php');
$student = $_POST['sid'];
$class = $_POST['cid'];
$user = "System";
//check the existance
$check = mysqli_query($condb, "select sid, cid from studentsclasses where sid = '$student' and cid = '$class'");
if(mysqli_num_rows($check)>0){
echo 'The record already exists';
}
else{
$insert = mysqli_query($condb, "insert into studentsclasses (sid, cid, createdBy) value('$student', '$class', '$user')");
if($insert){
echo 'Success';
}
else{
echo 'Error';
}
}
?>
当我第一次单击“添加”按钮时,它成功添加到数据库中。
但是,当我单击另一行中的“添加”按钮时,我收到记录已存在错误。
请给出您的建议。
解决方案
data-attributes
添加所需的数据以直接通过for传递元素$(".sid").val()
只会根据html
您提供的内容为您提供第一个元素的值。
当第一个值始终是被传递的值时,预计您对后端的检查会通知您该记录已经存在。
您可以将标记更改为:
<button class="add" type="button" name="add" data-sid="'.$row['sid'].'" data-cid="1">Add</button>
然后监听click
事件并发送ajax
$(function(){
$('.add').on('click', function(){
const sidval = $(this).data('sid')
const cidval = $(this).data('cid')
$.ajax({
type: "POST",
url: "add-student.php",
data: {
sid: sidval,
cid: cidval
},
success: function(data) {
alert(data);
}
});
})
})
https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes
推荐阅读
- c# - 如何解析 NSIS 中的 cmd.exe 值?
- python - 在熊猫df中添加值的有效方法
- git - 无法推/拉到谷歌存储库
- push-notification - Web Push vapid 密钥生成逻辑
- google-drive-api - Google Appmaker 支持的 Drive API 版本
- javascript - 等待下载方法完成后再运行下一个 .then - node.js
- javascript - Introjs 没有突出显示 fuse-sidebar 元素
- django - 如何让 Django 2.1 接受 PATCH/DELETE 请求
- vue.js - VueJS总结数据行中的所有数值
- python - sklearn 分类度量 auc 返回 ValueError